添加自定义触发器时如何保留mahapps metro样式?

时间:2017-01-24 16:06:37

标签: wpf mahapps.metro

我有一个按默认地铁风格设计的按钮。但是,当我向按钮添加触发器时,样式被覆盖。如何在添加自己的样式和触发器时保留原始的mahapps地铁样式?

    <Button x:Name="startButton" Content="Start" HorizontalAlignment="Right"  VerticalAlignment="Bottom" Margin="0,0,20,26" Width="75" Click="startButton_Click" Height="67" Grid.Column="1">
        <!--<Button.Style>
            <Style TargetType="Button">
                <Style.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="Foreground" Value="Red"></Setter>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </Button.Style>-->
    </Button>

这是按钮最初的显示方式

rescuable

这是我添加触发器

后的样子

Before

1 个答案:

答案 0 :(得分:3)

你需要设置&#34; BasedOn&#34; mahapps.metro提供的样式属性默认为:

<Style TargetType="Button" BasedOn="{StaticResource MetroButton}">

文档没有说出默认的静态资源,但它的OpenSource很容易在您导入的Controls.xaml的源代码中跟踪它,以加载app.xaml中的默认样式(或窗口顶部等):

https://github.com/MahApps/MahApps.Metro/tree/develop/src/MahApps.Metro/Styles

搜索TargetType =&#34;按钮&#34;找到我们的默认样式(没有键):

甚至还基于基本样式MahApps.Metro.Styles.MetroButton