添加自定义触发器时如何保留 mahapps metro 样式?
How to preserve mahapps metro styling when adding custom trigger?
我有一个采用默认 metro 样式的按钮。但是,当我向按钮添加触发器时,样式会被覆盖。如何在添加自己的样式和触发器时保留原始 mahapps metro 样式?
<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>
这是按钮原来的样子
这是我添加触发器后的样子
您需要将样式的 "BasedOn" 属性 设置为 mahapps.metro 默认提供的样式:
<Style TargetType="Button" BasedOn="{StaticResource MetroButton}">
文档没有说明默认的静态资源,但它是开源的,很容易在源代码中找到它,以便在您导入的 Controls.xaml 中加载默认样式 app.xaml (或 window 等的顶部):
https://github.com/MahApps/MahApps.Metro/tree/develop/src/MahApps.Metro/Styles
搜索 TargetType="Button" 找到我们的默认样式(没有键):
甚至还基于基本样式,MahApps.Metro.Styles.MetroButton
。
我有一个采用默认 metro 样式的按钮。但是,当我向按钮添加触发器时,样式会被覆盖。如何在添加自己的样式和触发器时保留原始 mahapps metro 样式?
<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>
这是按钮原来的样子
这是我添加触发器后的样子
您需要将样式的 "BasedOn" 属性 设置为 mahapps.metro 默认提供的样式:
<Style TargetType="Button" BasedOn="{StaticResource MetroButton}">
文档没有说明默认的静态资源,但它是开源的,很容易在源代码中找到它,以便在您导入的 Controls.xaml 中加载默认样式 app.xaml (或 window 等的顶部):
https://github.com/MahApps/MahApps.Metro/tree/develop/src/MahApps.Metro/Styles
搜索 TargetType="Button" 找到我们的默认样式(没有键):
甚至还基于基本样式,MahApps.Metro.Styles.MetroButton
。