Jaki jest zalecany sposób skórowania całej aplikacji w WPF?
Chcę, aby moja aplikacja WPF była podatna na skórki, poprzez zastosowanie określonego szablonu XAML, a zmiany miały być szerokie, nawet dla dynamicznych kontrolek lub kontrolek, które nie są nawet w drzewie wizualnym / logicznym.
Co mogę wykorzystać do realizacji tego typu funkcjonalności? Czy są jakieś dobre zasoby lub samouczki, które pokazują, jak można wykonać to konkretne zadanie?
3 answers
Podstawowym podejściem jest wykorzystanie zasobów w całej aplikacji i dynamiczne zastępowanie zasobów w czasie wykonywania.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-23 13:46:35
Zastąpienie zasobów zadziała, ale uznałem, że "skórowanie strukturalne" jest bardziej wydajne! Przeczytaj więcej o tym na CodeProject...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-23 13:53:37
Znalazłem sposób, aby zastosować ogólne szablony do wszystkich kontrolek bez użycia kluczy szablonów. Rozwiązaniem jest użycie typu kontrolki jako klucza stylu.
Przykład:
<Application.Resources>
<Style x:Key="{x:Type Button}" TargetType="{x:Type Button}">
<Setter Property="Button.Background" Value="CornflowerBlue"/>
<Setter Property="Button.Template">
<Setter.Value>
<ControlTemplate x:Name="MyTemplate">
...
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Application.Resources>
Tutaj kluczem stylu jest x: Key= " {X: Type Button}", więc styl zostanie zastosowany do wszystkich kontrolek przycisku typu Bez kontrolki deklarującej właściwość stylu jako statyczny lub dynamiczny zasób.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-06 08:36:18