WPF - 全球风格?

时间:2010-08-25 20:32:16

标签: wpf xaml styles global

有没有办法为我的WPF应用程序设置全局样式?

我希望做的是将样式应用于我的所有按钮,这些按钮也有一个Image子。

3 个答案:

答案 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标记中,它将应用于整个应用程序。