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
引用,并且不会引发异常。
此方法是线程安全的,可以从任何线程调用。