【发布时间】:2010-06-24 09:32:42
【问题描述】:
我们在 default.xaml 中有一个通用样式,针对我们应用程序中的所有按钮。有没有办法覆盖这种样式,并基于默认按钮创建一个新按钮?
【问题讨论】:
我们在 default.xaml 中有一个通用样式,针对我们应用程序中的所有按钮。有没有办法覆盖这种样式,并基于默认按钮创建一个新按钮?
【问题讨论】:
如果您想继承任何现有样式,请使用 BasedOn
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}" x:Key="RedTextBasedOnButton"> <Setter Property="Foreground" Value="Red" /> </Style>
这将继承默认样式,新的前景属性将应用于新样式
希望这会有所帮助。
【讨论】:
您可以像这样更改按钮的模板
<Style x:Key="{x:Type Button}" TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Padding="10,5,10,5" BorderBrush="Green" BorderThickness="1" CornerRadius="5" Background="#EFEFEF">
<TextBlock Text="{TemplateBinding Content}" />
</Border>
</ControlTemplate>
</Style>
【讨论】:
类 Style 具有属性 BasedOn 和接受 Style 参数的构造函数,该参数定义了要基于的样式。
Style boldStyle = new Style(typeof(Button), generalButtonStyle);
【讨论】: