fed*_*dab 5 c# wpf xaml avalondock
我想更改AvalonDock的Metro主题颜色.我还询问了有关Codeplex的相关问题,但到目前为止我还没有得到答案.
我将以下XAML(源文件)识别为我想要更改的颜色:
<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>
...
Run Code Online (Sandbox Code Playgroud)
你可以看到:画笔获得了BaseColor3(默认为蓝色).
现在我改变了我的XAML中的颜色:
<Window.Resources>
...
<SolidColorBrush x:Key="AvalonDock_ThemeMetroBaseColor3" Color="Red" />
</Window.Resources>
Run Code Online (Sandbox Code Playgroud)
没有什么变化.颜色保持蓝色.现在我很困惑.所以它必须是错误的属性来改变或某些东西阻止颜色改变或/和内部它使用旧值或东西......
为什么不起作用?我怎样才能发现这些问题并修复它?
我猜问题是这样的:
<avalon:DockingManager>
<avalon:DockingManager.Theme>
<avalon:MetroTheme />
</avalon:DockingManager.Theme>
...
</avalon:DockingManager>
Run Code Online (Sandbox Code Playgroud)
我删除了主题设置并创建了自己的资源字典(从AvalonDock源复制了样式).我不得不修复一些错误:
BasedOn="{Static Resource {x:Type MenuItem}}"(导致错误)之后它起作用了.