通过


Application.FindResource(Object) 方法

定义

搜索用户界面(UI)资源(如StyleBrush或)具有指定键,如果未找到请求的资源,则会引发异常(请参阅 XAML 资源)。

public:
 System::Object ^ FindResource(System::Object ^ resourceKey);
public object FindResource(object resourceKey);
member this.FindResource : obj -> obj
Public Function FindResource (resourceKey As Object) As Object

参数

resourceKey
Object

要查找的资源的名称。

返回

请求的资源对象。 如果未找到请求的资源,则会引发 a ResourceReferenceKeyNotFoundException

例外

示例

以下示例演示如何用于 FindResource 查找资源,以及如何处理 ResourceReferenceKeyNotFoundException 找不到资源。

void findResourceButton_Click(object sender, RoutedEventArgs e) {
  try {
    object resource = Application.Current.FindResource("UnfindableResource");
  }
  catch (ResourceReferenceKeyNotFoundException ex) {
    MessageBox.Show("Resource not found.");
  }
}
Private Sub findResourceButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
  Try
    Dim resource As Object = Application.Current.FindResource("UnfindableResource")
  Catch ex As ResourceReferenceKeyNotFoundException
    MessageBox.Show("Resource not found.")
  End Try
End Sub

注解

FindResource 将首先查找指定资源的应用程序范围资源。 应用程序范围资源由 Application该属性进行管理,并从属性 Resources 公开。 如果在应用程序范围资源集中找不到指定的资源, FindResource 则接下来搜索系统资源。 系统资源是用户定义的 shell 资源,包括颜色、字体和 shell 配置。 这些属性分别作为静态属性和SystemColorsSystemFontsSystemParameters类型公开。 FindResource为了获取它们,这些类型还会公开设计为FindResource传递给的资源键属性;例如IconWidthKey

由于 FindResource 返回对象,因此,如果找到资源,则必须将返回的值强制转换为适当的类型。

重要

如果为找不到的键调用此方法,则会引发异常。 如果不想处理因调用 FindResource而引发的异常,请改为调用 TryFindResource ; TryFindResource 在找不到请求的资源时返回 null 引用,并且不会引发异常。

此方法是线程安全的,可从任何线程调用。

适用于

另请参阅