FrameworkContentElement.TryFindResource(Object) メソッド


指定されたキーを使用してリソースを検索し、見つかった場合はそのリソースを返します。Searches for a resource with the specified key, and returns that resource if found.

 System::Object ^ TryFindResource(System::Object ^ resourceKey);
public object TryFindResource (object resourceKey);
member this.TryFindResource : obj -> obj
Public Function TryFindResource (resourceKey As Object) As Object



検索するリソースのキー識別子。Key identifier of the resource to be found.


見つかったリソース。The found resource. リソースが見つからなかった場合は、null が返されます。If no resource was found, null is returned.

次の例では、マークアップで定義されたリソースを検索し、ルーティングイベントへの応答として、要素の特定のプロパティに適用します。The following example finds a resource as defined in markup and applies it to a certain property of an element in response to a routed event.

void SetBGByResourceTry(object sender, RoutedEventArgs e)
    Block b = sender as Block;
    b.Background = (Brush)this.TryFindResource("RainbowBrush");
Private Sub SetBGByResourceTry(ByVal sender As Object, ByVal e As RoutedEventArgs)
    Dim b As Block = TryCast(sender, Block)
    b.Background = CType(Me.TryFindResource("RainbowBrush"), Brush)
End Sub


リソースが呼び出し元の要素で見つからない場合、論理ツリーを使用して親ツリーが検索されます。これは、実行時にキーによって動的リソース参照が要求された場合に、ツリーが検索されるのと同じです。If the resource is not found on the calling element, the parent tree is searched using the logical tree, in the same way that the tree would be searched if a dynamic resource reference were requested by key at run-time.

通常は、返されたリソース値を使用して設定しようとしていたプロパティの型に戻り値を直ちにキャストします。Typically you would immediately cast the return value to the type of the property that you were attempting to set with the returned resource value.

FindResource メソッドの動作は似ていますが、指定されたキーを持つリソースが見つからない場合に例外がスローされる点が異なります。The FindResource method has similar behavior, except that it will throw an exception in the case of not finding a resource with the provided key.