有没有办法改变 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和@Sankarann的想法和帮助。
如果有人有更好的解决方案,请分享。

10-07 17:59