有没有办法为我的WPF应用程序设置全局样式?
我希望做的是将样式应用于我的所有按钮,这些按钮也有一个Image子。
答案 0 :(得分:27)
嗯,有点 - 你可以做的全能方法 - 在你的App.xaml中添加以下元素 - 你的所有按钮都会改变(手动应用样式的按钮除外)。
<Style TargetType="{x:Type Button}">
<Setter Property="Background" Value="LightPink"/> <!-- You should notice that one... -->
</Style>
但是,如果你只想点击带有图像的按钮 - 你每次都必须从Button继承,然后应用这样的样式:
public class CustomImageButton:Button{}
<Style TargetType="{x:Type local:CustomImageButton}">
<Setter Property="Background" Value="LimeGreen"/>
</Style>
<local:CustomImageButton Content="ClickMe"/>
这是一种非常粗糙的全局样式 - 您需要遵循惯例才能使其发挥作用。
另一种方法是使用主题 - 详细了解here。
答案 1 :(得分:5)
您可以在WPF中执行由类型
应用的隐式样式 例如
<Style TargetType="Button">
将应用于该样式范围内的所有按钮(如果样式位于App.XAML中,它将应用于所有按钮,如果它在链中较低,则将应用于其下面的所有按钮)
如果您只想将它应用于某些类型的按钮(比如图像按钮),请创建一个从按钮派生的类型(称之为ImageButton),然后创建一个针对该类型的样式。
答案 2 :(得分:3)
将样式放入App.xaml中的ResourceDictionary标记中,它将应用于整个应用程序。