我想改变阿瓦朗多克的地铁主题颜色。我也问过,但到目前为止我还没有得到答案。
我认为下面的xaml(a related question on Codeplex)是我想改变颜色的原因:
<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>
...
您可以看到:画笔获得basecolor3(默认情况下是蓝色)。
现在我在xaml中改变了颜色:
<Window.Resources>
...
<SolidColorBrush x:Key="AvalonDock_ThemeMetroBaseColor3" Color="Red" />
</Window.Resources>
什么都没变。颜色保持蓝色。现在我很困惑。所以它必须是一个错误的属性来改变,或者某种东西阻止了颜色的改变,或者/或者它内部使用了旧的值或者其他东西……
为什么不起作用?我怎样才能发现并解决这些问题呢?
最佳答案
我想问题在于:
<avalon:DockingManager>
<avalon:DockingManager.Theme>
<avalon:MetroTheme />
</avalon:DockingManager.Theme>
...
</avalon:DockingManager>
我删除了主题设置并创建了自己的资源字典(从avalondock源复制了样式)。我不得不纠正一些错误:
找不到BaseColorXX->从旧版本Avalondock的VS2010主题复制
targetType'hwndostinstance'与元素类型“layoutuautohidewindowcontrol->使用x:key=”{x:type avalondockcontrols:layoutuautohidewindowcontrol})注释掉样式不匹配
删除(导致错误)
使用复制的图像将图像路径更改为我自己的项目路径
在那之后它起作用了。