Application.FindResource(Object) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
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
要查找的资源名。
返回
所请求的资源对象。 如果未找到所请求的资源,则引发 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公开 SystemParameters 。 FindResource为了获取它们,这些类型还会公开设计为传递给FindResource的资源键属性;例如IconWidthKey。
由于 FindResource 返回对象,因此如果找到资源,则必须将返回的值强制转换为适当的类型。
重要
如果为找不到的密钥调用此方法,则会引发异常。 如果不想处理调用 FindResource的结果异常,请改为调用 TryFindResource ; TryFindResource 当找不到请求的资源时返回 null
引用,并且不会引发异常。
此方法是线程安全的,可从任何线程调用。