FrameworkElement.FindResource(Object) FrameworkElement.FindResource(Object) FrameworkElement.FindResource(Object) FrameworkElement.FindResource(Object) Method


指定したキーを持つリソースを検索します。要求したリソースが見つからない場合は例外がスローされます。Searches for a resource with the specified key, and throws an exception if the requested resource is not found.

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


Object Object Object Object

要求したリソースのキー識別子。The key identifier for the requested resource.


要求されたリソース。The requested resource. 指定したキーを持つリソースが見つからなかった場合は例外がスローされます。If no resource with the provided key was found, an exception is thrown. その場合は UnsetValue 値が返されることもあります。An UnsetValue value might also be returned in the exception case.


resourceKey が見つからず、UnhandledException イベントのイベント ハンドラーが存在しません。resourceKey was not found and an event handler does not exist for the UnhandledException event.

または-or- resourceKey が見つからず、Handled イベントで UnhandledException プロパティが false です。resourceKey was not found and the Handled property is false in the UnhandledException event.

次の例では、名前付きリソースを取得し、プロパティを入力する適切な型にキャストされます。The following example obtains a named resource and casts it to an appropriate type to fill a property.

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



見つからないキーのこのメソッドを呼び出すと、例外がスローされます。If you call this method for a key that cannot be found, an exception is thrown. 呼び出し元に起因する例外を処理しないかどうかはFindResource、呼び出すTryFindResource代わりにします。If you do not want to handle exceptions that result from calling FindResource, call TryFindResource instead. TryFindResource 返しますnull要求されたリソースが見つからないし、例外はスローされません。TryFindResource returns null when a requested resource cannot be found, and does not throw an exception.

呼び出し元の要素で、リソースが見つからない場合、論理ツリー内の親要素、検索結果の次し、アプリケーション、し、テーマ、最後にシステム リソース。If the resource is not found on the calling element, the parent element in the logical tree is searched next, then the application, then themes, and finally system resources. この参照方法は、リソースがマークアップでの動的リソース参照によって要求された場合に、ツリーを検索する方法と同じです。This lookup methodology is identical to how the tree is searched if a resource were requested by a dynamic resource reference in markup. リソースのルックアップの詳細については、次を参照してください。 XAML リソースします。For more information about resource lookup, see XAML Resources.

通常、即座にキャストする、FindResourceに値を返し、プロパティの型を返されたリソースの値を設定します。Typically, you immediately cast a FindResource return value to the type of the property that you setting with the returned resource value.

リソース キーは、必ずしも文字列ではありません。Resource keys are not necessarily strings. たとえば、テーマ レベルのコントロールが意図的と適合するをスタイル設定、Typeの管理、およびアプリケーションまたはページのスタイルのコントロールを通常使用してこの同じキー規則。For instance, styles for controls at the theme level are deliberately keyed to the Type of the control, and application or page styles for controls typically use this same key convention. 詳細については、次を参照してください。スタイルとテンプレートまたはXAML リソースします。For details, see Styling and Templating or XAML Resources.