FrameworkElement.FindResource(Object) Metoda

Definicja

Wyszukuje zasób z określonym kluczem i zgłasza wyjątek, jeśli nie odnaleziono żądanego zasobu.Searches for a resource with the specified key, and throws an exception if the requested resource is not found.

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

Parametry

resourceKey
Object

Identyfikator klucza dla żądanego zasobu.The key identifier for the requested resource.

Zwraca

Object

Żądany zasób.The requested resource. Jeśli nie znaleziono zasobu z podanym kluczem, zostanie zgłoszony wyjątek.If no resource with the provided key was found, an exception is thrown. UnsetValueW przypadku wyjątku może być również zwracana wartość.An UnsetValue value might also be returned in the exception case.

Wyjątki

resourceKey nie znaleziono i program obsługi zdarzeń nie istnieje dla UnhandledException zdarzenia.resourceKey was not found and an event handler does not exist for the UnhandledException event.

-lub--or- resourceKey nie znaleziono i Handled Właściwość jest false w UnhandledException zdarzeniu.resourceKey was not found and the Handled property is false in the UnhandledException event.

resourceKey to null.resourceKey is null.

Przykłady

Poniższy przykład uzyskuje nazwany zasób i rzutuje go na odpowiedni typ w celu wypełnienia właściwości.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

Uwagi

Ważne

W przypadku wywołania tej metody dla klucza, którego nie można znaleźć, zostanie zgłoszony wyjątek.If you call this method for a key that cannot be found, an exception is thrown. Jeśli nie chcesz obsługiwać wyjątków wynikających z wywołania FindResource , TryFindResource zamiast tego wywołaj.If you do not want to handle exceptions that result from calling FindResource, call TryFindResource instead. TryFindResource zwraca null , gdy nie można znaleźć żądanego zasobu i nie zgłasza wyjątku.TryFindResource returns null when a requested resource cannot be found, and does not throw an exception.

Jeśli zasób nie zostanie znaleziony w elemencie wywołującym, element nadrzędny w drzewie logicznym zostanie przeszukany dalej, a następnie aplikacja, motywy i końcowe zasoby systemowe.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. Ta metodologia wyszukiwania jest taka sama jak w przypadku przeszukiwania drzewa, jeśli zażądano zasobu przez odwołanie do zasobu dynamicznego w znaczniku.This lookup methodology is identical to how the tree is searched if a resource were requested by a dynamic resource reference in markup. Aby uzyskać więcej informacji na temat wyszukiwania zasobów, zobacz zasoby XAML.For more information about resource lookup, see XAML Resources.

Zazwyczaj natychmiast rzutuje FindResource wartość zwracaną na typ właściwości, która jest ustawiana za pomocą zwracanej wartości zasobu.Typically, you immediately cast a FindResource return value to the type of the property that you setting with the returned resource value.

Klucze zasobów nie muszą być ciągami.Resource keys are not necessarily strings. Na przykład style dla kontrolek na poziomie motywu są celowo Type przystosowane do formantu, a style aplikacji lub strony dla formantów zwykle korzystają z tej samej Konwencji klucza.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. Aby uzyskać szczegółowe informacje, zobacz Style i tworzenia szablonów lub XAML.For details, see Styling and Templating or XAML Resources.

Dotyczy

Zobacz też