Style i szablony wbudowane

Program Windows Presentation Foundation (WPF) udostępnia Style obiekty i obiekty szablonu (FrameworkTemplate podklasy) jako sposób definiowania wizualnego wyglądu elementu w zasobach, dzięki czemu mogą być używane wielokrotnie. Z tego powodu atrybuty w języku XAML, które przyjmują typy Style i FrameworkTemplate prawie zawsze odwołują się do zasobów do istniejących stylów i szablonów, a nie definiują nowych wbudowanych.

Ograniczenia stylów wbudowanych i szablonów

W języku Extensible Application Markup Language (XAML) właściwości stylu i szablonu można technicznie ustawić na jeden z dwóch sposobów. Składnia atrybutów służy do odwołowania się do stylu zdefiniowanego w ramach zasobu, na przykład <obiektuStyle="{StaticResourcemyResourceKey.}" .../> Możesz też użyć składni elementu właściwości, aby zdefiniować styl wbudowany, na przykład:

<object>

<object.Style>

< Style .../>

</object.Style>

</object>

Użycie atrybutów jest znacznie bardziej powszechne. Styl zdefiniowany śródwierszowo i niezdefiniowany w zasobach musi mieć zakres tylko do elementu zawierającego i nie może być ponownie używany tak łatwo, ponieważ nie ma klucza zasobu. Ogólnie rzecz biorąc, styl zdefiniowany przez zasób jest bardziej wszechstronny i przydatny, i jest bardziej zgodne z ogólną zasadą modelu programowania Windows Presentation Foundation (WPF) oddzielenia logiki programu w kodzie od projektu w adiustacji.

Zazwyczaj nie ma powodu, aby ustawić styl lub wbudowany szablon, nawet jeśli zamierzasz używać tego stylu lub szablonu tylko w tej lokalizacji. Większość elementów, które mogą przyjmować styl lub szablon, obsługuje również właściwość zawartości i con tryb namiotu l. Jeśli używasz tylko dowolnego drzewa logicznego tworzonego za pomocą stylów lub tworzenia szablonów raz, łatwiej byłoby po prostu wypełnić tę właściwość zawartości równoważnymi elementami podrzędnymi w znacznikach bezpośrednich. Spowoduje to całkowite obejście mechanizmów stylu i szablonu.

Inne składnie włączone przez rozszerzenia znaczników, które zwracają obiekt, są również możliwe dla stylów i szablonów. Dwa takie rozszerzenia, które mają możliwe scenariusze, to TemplateBinding i Binding.

Zobacz też