FrameworkElement.TryFindResource(Object) メソッド

定義

指定したキーを持つリソースを検索し、見つかった場合はそのリソースを返します。

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

パラメーター

resourceKey
Object

見つかるリソースのキー識別子。

返品

見つかったリソース。指定されたresourceKeyを持つリソースが見つからない場合はnull

次の例は、ボタン ハンドラーとして実装されています。ボタンをクリックすると、その背景が、それ自体で TryFindResource を呼び出すことによって取得されたリソース定義ブラシに設定されます。 これにより、要素ツリーがウォークされ、リソースが検索されます (リソース自体は XAML で定義され、表示されません)。

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

注釈

呼び出し元の要素でリソースが見つからない場合は、実行時にリソースがキーによって要求された場合にツリーが検索されるのと同じ方法で、親リソース ツリーが論理ツリーを介して上方向に検索されます。 このメソッドは、TryFindResourceが呼び出された時点のツリーの既存の条件に従って、そのキーのリソースがリソース ツリー内のどこにも存在しなかった場合にのみ、nullを返します。

通常は、戻り値を、返されたリソース値で設定しようとしたプロパティの型にすぐにキャストします。

FindResource メソッドの動作は似ていますが、指定されたキーを持つリソースが返されなかった場合に例外がスローされる点が異なります。

適用対象

こちらもご覧ください