Udostępnij przez


Znacznik rozszerzenia {CustomResource}

Udostępnia wartość dla dowolnego atrybutu XAML, oceniając odwołanie do zasobu pochodzącego z niestandardowej implementacji wyszukiwania zasobów. Wyszukiwanie zasobów jest wykonywane przez implementację klasy CustomXamlResourceLoader .

Użycie atrybutu XAML

<object property="{CustomResource key}" .../>

Wartości XAML

Termin Description
klucz Klucz zasobu, o który zażądano. Sposób, w jaki klucz jest początkowo przypisany, jest specyficzny dla implementacji klasy CustomXamlResourceLoader , która jest obecnie zarejestrowana do użycia.

Uwagi

CustomResource to technika uzyskiwania wartości zdefiniowanych w innym miejscu w niestandardowym repozytorium zasobów. Ta technika jest stosunkowo zaawansowana i nie jest używana przez większość scenariuszy aplikacji Środowiska uruchomieniowego systemu Windows.

Sposób rozpoznawania elementu CustomResource w słowniku zasobów nie jest opisany w tym temacie, ponieważ może się to znacznie różnić w zależności od sposobu implementacji modułu CustomXamlResourceLoader .

Metoda GetResource implementacji CustomXamlResourceLoader jest wywoływana przez analizator XAML środowiska uruchomieniowego systemu Windows za każdym razem, gdy napotka użycie {CustomResource} w kodzie znaczników. Identyfikator resourceId, który jest przekazywany do metody GetResource, pochodzi z argumentu klucza, a inne parametry wejściowe pochodzą z kontekstu, takiego jak właściwość, do której jest stosowane użycie.

Użycie {CustomResource} nie działa domyślnie (podstawowa implementacja getResource jest niekompletna). Aby dokonać prawidłowego {CustomResource} odwołania, należy wykonać każdą z następujących czynności:

  1. Utwórz klasę niestandardową z klasy CustomXamlResourceLoader i zastąpij metodę GetResource . Nie należy wywoływać klasy bazowej w implementacji.
  2. Ustaw wartość CustomXamlResourceLoader.Current, aby odwołać się do swojej klasy w logice inicjalizacji. Musi się to zdarzyć przed załadowaniem dowolnego kodu XAML na poziomie strony zawierającego {CustomResource} użycie rozszerzenia. Jednym z miejsc ustawiania parametru CustomXamlResourceLoader.Current jest konstruktor podklasy Aplikacji wygenerowany dla Ciebie w szablonach kodu za pomocą pliku App.xaml.
  3. Teraz możesz użyć {CustomResource} rozszerzeń w języku XAML ładowanych przez aplikację jako strony lub z słowników zasobów XAML.

CustomResource to rozszerzenie znaczników. Rozszerzenia znaczników są zwykle wdrażane, gdy istnieje potrzeba przetworzenia wartości atrybutów, aby były inne niż wartości dosłowne lub nazwy procedur obsługi lub funkcji, a potrzeba ta jest bardziej globalna niż tylko zastosowanie konwerterów typów do określonych typów lub właściwości. Wszystkie rozszerzenia znaczników w języku XAML używają znaków "{" i "}" w składni atrybutu, która jest konwencją, zgodnie z którą procesor XAML rozpoznaje, że rozszerzenie znaczników musi przetworzyć atrybut.