有没有一种方法可以为我的WPF应用程序设置全局样式?
我希望能够将样式应用于所有具有图像子元素的按钮。
嗯,有点像——这是一种你可以采用的全局方法——将以下元素放在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"/>
这是一种非常粗略的全局样式 - 您需要遵循惯例才能使其正常工作。
另一种选择是使用主题 - 在这里了解更多信息。
<Style TargetType="Button">
这个样式将应用于该范围内的所有按钮(如果样式在App.XAML中,则将应用于所有按钮;如果它在链中较低,则将应用于其下方的所有按钮)。
如果您只想将其应用于特定类型的按钮(例如imagebuttons),请创建一个从button派生的类型(称之为ImageButton),然后创建针对该类型的样式。
x:Key
,然后通过使用 Style = "{StaticResource DisabledButton}"
从每个按钮显式调用它,它们都可以工作。有没有什么方法可以避免必须为每个按钮添加显式引用? - Sonny Boy