Wbudowane style i szablony
Program Windows Presentation Foundation (WPF) udostępnia obiekty Style 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 istniejących stylów i szablonów, zamiast definiować nowe w sposób wbudowany.
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="{StaticResource
myResourceKey}" .../>
. Możesz też użyć składni elementów właściwości, aby zdefiniować styl w linii, na przykład:
<
obiektu>
<
obiektu.Style>
<
Style
.../>
</
obiektu.Style>
</
obiektu>
Użycie atrybutów jest znacznie bardziej powszechne. Styl zdefiniowany w ramach linii i niewystępujący w zasobach jest ograniczony wyłącznie do elementu, w którym się znajduje, i nie może być tak łatwo ponownie użyty, ponieważ nie posiada klucza zasobu. Ogólnie rzecz biorąc, styl zdefiniowany przez zasób jest bardziej wszechstronny i przydatny, i jest bardziej zgodny z ogólną zasadą modelu programowania Windows Presentation Foundation (WPF), która polega na oddzieleniu logiki programu w kodzie od projektu w znacznikach.
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 model zawartości. 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, obejmują TemplateBinding i Binding.
Zobacz też
.NET Desktop feedback