在Mahapps Metro对话框中覆盖按钮的样式

问题描述 投票:0回答:1

我想用自定义的(不使用强调色)重写Mahapps Metro对话框中按钮的颜色。我最感兴趣的是更改单击时显示的按钮的颜色。这是点击时button的默认样式。

App.xaml中:

<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml"/>
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml"/>
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml"/>
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml"/>
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Crimson.xaml"/>
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml"/>
<ResourceDictionary Source="Styles.xaml" />

MainWindow.xaml:

<Grid>
    <Button
        Content="Open Metro Dialog"
        Click="Button_Click"
        Style="{StaticResource ButtonStyle}"
        />
</Grid>

MainWindow.xaml.cs

public partial class MainWindow : WindowBase
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private async void Button_Click(object sender, RoutedEventArgs e)
    {
        MessageDialogResult dialogResult = await this.ShowMessageAsync("Close window", "Are you sure you want to close the window?", MessageDialogStyle.Affirmative);

        if (dialogResult == MessageDialogResult.Affirmative)
        {
           this.Close();
        }
    }
}

到目前为止我尝试了什么:

  1. 使用关键'BlackBrush'(这个用作按钮的背景颜色)重写Mahapps Metro颜色,并使用自定义颜色;
  2. 重写按钮的控件模板。

有没有办法实现这个目标?

c# wpf mahapps.metro
1个回答
0
投票

您需要处理Metro对话框控件的样式。你可以找到它here。要使用它,请添加

xmlns:Dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro"

然后继续关注this answerthis answer

© www.soinside.com 2019 - 2024. All rights reserved.