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

要查找的资源名。

返回

Object

所请求的资源对象。 如果未找到所请求的资源,则引发 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 配置。 这些属性分别以静态属性的形式从 SystemColors类型 SystemFonts公开 SystemParametersFindResource为了获取它们,这些类型还会公开设计为传递给FindResource的资源键属性;例如IconWidthKey

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

重要

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

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

适用于

另请参阅