Chcę zmienić kolor motywu Metro w AvalonDock. Zapytałem także: a related question on Codeplex, ale jak dotąd nie otrzymałem odpowiedzi.Zmień styl istniejącego motywu (AvalonDock)
I zidentyfikowano następujące XAML (source file) jako sztukę, która, jak sądzę, jest odpowiedzialna za kolor chcę zmienić:
<Style TargetType="avalonDockControls:AnchorablePaneTitle">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
...
<ControlTemplate.Triggers>
...
<DataTrigger Binding="{Binding Model.IsActive, RelativeSource={RelativeSource Mode=Self}}" Value="True">
<!-- following XAML line -->
<Setter Property="BorderBrush" Value="{DynamicResource AvalonDock_ThemeMetro_BaseColor3}" />
<Setter Property="BorderThickness" Value="0,3,0,0"/>
</DataTrigger>
...
</ControlTemplate.Triggers>
...
można zobaczyć: szczotka dostaje BaseColor3 (niebieskawy kolor domyślnie).
Teraz zmieniła kolor takiego w moim XAML:
<Window.Resources>
...
<SolidColorBrush x:Key="AvalonDock_ThemeMetroBaseColor3" Color="Red" />
</Window.Resources>
Nic się nie zmienia. Kolor pozostaje niebieskawy. Teraz jestem zmieszany. Tak więc musi to być niewłaściwa właściwość do zmiany lub coś uniemożliwia zmianę koloru lub/i wewnętrzna używa starej wartości lub czegoś ...
Dlaczego to nie działa? Jak mogę odkryć takie problemy i je naprawić?
Czy skopiowałeś [theme.xaml] (https://avalondock.codeplex.com/SourceControl/latest#Version2.0/Xceed.Wpf.AvalonDock.Themes.Metro/Theme.xaml)? Patrzę na to i używa kilku "BaseColorXX", które nie istnieją nawet w [brushes.xaml] (https://avalondock.codeplex.com/SourceControl/latest#Version2.0/Xceed.Wpf.AvalonDock .Themes.Metro/Brushes.xaml), jak to możliwe? – JobaDiniz
@JobaDiniz Próbowałem skopiować wszystko, dołączono Theme.xaml. Musiałem dodać kilka definicji 'BaseColorXX' do Brushes.xaml. Skopiowałem je ze starszego Brushes.xaml ze źródła. Na przykład [this] (https://avalondock.codeplex.com/SourceControl/changeset/89595#Version2.0/AvalonDock/AvalonDock.Theme.VS2010/Brushes.xaml) było pierwszym commitem Brushes.xaml i zawierało wszystkie potrzebne definicje. – fedab
Dzięki, ale zmieniłeś ich wartości, prawda? Na przykład 'BaseColor31' (z twojego linku) jest żółtawy, co nie pasuje do stylu metra. – JobaDiniz