我想改变阿瓦朗多克的地铁主题颜色。我也问过,但到目前为止我还没有得到答案。
我认为下面的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})注释掉样式不匹配
删除(导致错误)
使用复制的图像将图像路径更改为我自己的项目路径
在那之后它起作用了。

08-28 07:05
查看更多