gpt4 book ai didi

wpf - 如何更改 MahApps 中所有命令按钮的前景色

转载 作者:行者123 更新时间:2023-12-04 13:39:44 26 4
gpt4 key购买 nike

有没有办法改变 MetroWindow 中的按钮前景?
我什至试图覆盖 IronicallyNamedChromelessButtonStyle 但前景色仍然相同。

编辑:
按钮位于窗口栏中(例如关闭、最小化、最大化)。

最佳答案

在深入了解 MahApps 代码之后……这是负责按钮的源代码:
https://github.com/MahApps/MahApps.Metro/blob/master/MahApps.Metro/Themes/MetroWindow.xaml
如果您仔细观察,您会注意到每个样式都有触发器,这些触发器使用硬编码的“白色”覆盖样式前景:

<Style.Triggers>
<DataTrigger Binding="{Binding ShowTitleBar, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Controls:MetroWindow}}}"
Value="True">
<Setter Property="Foreground"
Value="White" />
</DataTrigger>
<DataTrigger Binding="{Binding ShowTitleBar, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Controls:MetroWindow}}}"
Value="False">
<Setter Property="Background"
Value="Transparent" />
</DataTrigger>
</Style.Triggers>

我的解决方案是覆盖所有必要的样式触发器:
<Style TargetType="{x:Type MahControls:WindowButtonCommands}">
<Style.Triggers>
<DataTrigger Binding="{Binding ShowTitleBar, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type MahControls:MetroWindow}}}"
Value="True">
<Setter Property="Foreground"
Value="{StaticResource IdealForegroundColorBrush}" />
</DataTrigger>
</Style.Triggers>
</Style>

希望这会对我的情况有所帮助。
特别感谢@Rui 和@Sankaran 的想法和帮助。
如果有人有更好的解决方案,请分享。

关于wpf - 如何更改 MahApps 中所有命令按钮的前景色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21576846/

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