gpt4 book ai didi

c# - 更改现有主题的样式(AvalonDock)

转载 作者:太空狗 更新时间:2023-10-29 22:58:42 25 4
gpt4 key购买 nike

我想更改 AvalonDock 的 Metro 主题颜色。我也问了a related question on Codeplex但到目前为止我还没有得到答案。

我将以下 XAML ( source file) 确定为我想负责更改颜色的部分:

<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 'HwndHostInstance' 与元素类型“LayoutAutoHideWindowControl -> 用 x:Key="{x:Type avalonDockControls:LayoutAutoHideWindowControl}") 注释掉样式
  • 删除 BasedOn="{Static Resource {x:Type MenuItem}}"(导致错误)
  • 使用复制的图像将图像路径更改为我自己的项目路径

之后就成功了。

关于c# - 更改现有主题的样式(AvalonDock),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25722664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com