Udostępnij za pośrednictwem


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="{StaticResourcemyResourceKey}" .../>. 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ż