FrameworkElement.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
所请求资源的键标识符。
返回
所请求的资源。 如果未找到具有所提供键的资源,将引发异常。 在发生异常的情况下,可能还会返回一个 UnsetValue 值。
例外
找不到 resourceKey
,且事件管理器对于 UnhandledException 事件不存在。
- 或 -
找不到 resourceKey
,且 Handled 属性在 UnhandledException 事件中为 false
。
resourceKey
为 null
。
示例
以下示例获取一个命名资源,并将其强制转换为适当的类型以填充属性。
void SetBGByResource(object sender, RoutedEventArgs e)
{
Button b = sender as Button;
b.Background = (Brush)this.FindResource("RainbowBrush");
}
Private Sub SetBGByResource(ByVal sender As Object, ByVal e As RoutedEventArgs)
Dim b As Button = TryCast(sender, Button)
b.Background = CType(Me.FindResource("RainbowBrush"), Brush)
End Sub
注解
重要
如果为找不到的密钥调用此方法,则会引发异常。 如果不想处理由调用 FindResource引起的异常,请改为调用 TryFindResource 。
TryFindResource
null
如果找不到请求的资源,并且不会引发异常,则返回 。
如果在调用元素上找不到资源,则接下来搜索逻辑树中的父元素,然后搜索应用程序、主题,最后搜索系统资源。 如果资源是由标记中的动态资源引用请求的,则此查找方法与树的搜索方式相同。 有关资源查找的详细信息,请参阅 XAML 资源。
通常,会立即将 FindResource 返回值强制转换为使用返回的资源值设置的属性的类型。
资源键不一定是字符串。 例如,主题级别的控件的样式被故意键控到 Type 控件的 ,而控件的应用程序或页面样式通常使用相同的键约定。 有关详细信息,请参阅 样式设置和模板化 或 XAML 资源。