FrameworkElement.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



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


見つかったリソース。指定した key のリソースが見つからない場合は nullThe found resource, or null if no resource with the provided key is found.

次の例は、ボタンハンドラーとして実装されています。ボタンをクリックすると、その背景が、TryFindResource を呼び出すことによって取得されるリソース定義のブラシに設定されます。The following example is implemented as a button handler, where the button being clicked sets its background to a resource-defined brush obtained by calling TryFindResource on itself. これにより、要素ツリーが表示され、リソースが検索されます (リソース自体は XAMLXAML で定義されており、表示されません)。This walks the element tree and finds the resource (the resource itself is defined in XAMLXAML and is not shown).

void TryFind(object sender, RoutedEventArgs e)  {
    Button b = e.Source as Button;
    b.Background = (Brush)b.TryFindResource("customBrush");
Private Sub TryFind(ByVal sender As Object, ByVal e As RoutedEventArgs)
    Dim b As Button = TryCast(e.Source, Button)
    b.Background = CType(b.TryFindResource("customBrush"), Brush)
End Sub


リソースが呼び出し元の要素で見つからない場合は、実行時にキーによってリソースが要求された場合にツリーが検索されるのと同じ方法で、親リソースツリーが上方向に検索されます。If the resource is not found on the calling element, the parent resource tree is searched upward through the logical tree, in the same way that the tree would be searched if a resource were requested by key at run time. メソッドは、TryFindResource が呼び出された時点のツリーの既存の条件に従って、リソースツリー内の任意の場所にそのキーのリソースが存在しない場合にのみ null を返します。The method returns null only if no resource of that key existed anywhere in the resource tree, per the existing conditions of the tree at the time that TryFindResource is called.

通常は、返されたリソース値を使用して設定しようとしていたプロパティの型に戻り値を直ちにキャストします。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 throws an exception if no resource with the provided key was returned.