Mam mały problem z projektem wpf, nad którym obecnie pracuję. Jestem nowy w WPF. W moim app.xaml używam motywu Microsoft Aero dla mojej aplikacji. Mam coś takiego w moim App.xamlPrzesłanianie motywów w WPF
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/PresentationFramework.Aero;V3.0.0.0;31bf3856ad364e35;component/themes/Aero.NormalColor.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
co teraz chciałbym wiedzieć, w jaki sposób, aby zastąpić pewne właściwości stylu np W przypadku przycisków chcę nadpisać styl czcionki, zachowując resztę stylu aero.
Jeśli zdefiniuję styl przycisku w moich zasobach okna, np.
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}" x:Key="RedTextBasedOnButton">
<Setter Property="Foreground" Value="Red" />
</Style>
i zdefiniować przycisk w oparciu o wyżej stylu
przycisk traci wszystkie właściwości stylu aero. Myślę, że problem jest zrobić z okazji I zdefiniować basedon właściwość dla stylu
BasedOn="{StaticResource {x:Type Button}}"
Nie sądzę zasób jest statyczny, ponieważ pochodzi z DLL, powinno to prawdopodobnie coś takiego . Nie jestem tego pewien.
BasedOn="{DynamicResource {x:Type Button}}"
ale przede rzuca wyjątek i co gdybym miał wiele ResourceDictionary w moim App.xaml np luna i klasyczny. Jak mogę określić, który z nich powinien być używany jako domyślny i samowystępujący przy zmianie i nadpisywaniu innego (np. Luna) specjalnie dla niektórych elementów sterujących w moim interfejsie użytkownika? Więc niektóre z moich przycisków będą oparte na stylu luna, a niektóre na stylu aero z kilkoma dalszymi modyfikacjami?
Każdy pomysł?
Pozdrawiam,
możliwym duplikatu [przesłanianie nadpisane WPF Theme] (http://stackoverflow.com/questions/2377055/override-overriden-wpf-theme) –
Czy któryś ze stylów mieć wyraźne klucze, które można powiązać z? – Killnine