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
要查找的资源的名称。
返回
请求的资源对象。 如果未找到请求的资源,则会引发 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 引用,并且不会引发异常。
此方法是线程安全的,可从任何线程调用。