Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF-全球风格?_Wpf_Xaml_Styles_Global - Fatal编程技术网

WPF-全球风格?

WPF-全球风格?,wpf,xaml,styles,global,Wpf,Xaml,Styles,Global,有没有办法为我的WPF应用程序设置全局样式 我希望将样式应用于我的所有按钮,这些按钮也有一个图像子项。您可以在WPF中按类型应用隐式样式 比如说 <Style TargetType="Button"> 将应用于该样式范围内的所有按钮(如果样式在App.XAML中,则将应用于所有按钮;如果样式在链中较低,则将应用于其下方的所有按钮) 如果您只想将其应用于某些类型的按钮(比如imagebuttons),请创建一个从按钮派生的类型(称为ImageButton),然后创建一个针对该类型

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


我希望将样式应用于我的所有按钮,这些按钮也有一个图像子项。

您可以在WPF中按类型应用隐式样式

比如说

<Style TargetType="Button">

将应用于该样式范围内的所有按钮(如果样式在App.XAML中,则将应用于所有按钮;如果样式在链中较低,则将应用于其下方的所有按钮)


如果您只想将其应用于某些类型的按钮(比如imagebuttons),请创建一个从按钮派生的类型(称为ImageButton),然后创建一个针对该类型的样式。

将该样式放入App.xaml中的ResourceDictionary标记中,它将应用于整个应用。

好,某种程度上——这是一种你可以做到的包罗万象的方法——在App.xaml中加入以下元素——你所有的按钮都会改变(除了你手动应用样式的按钮)


但是,如果您只想点击带有图像的按钮,则每次都必须从按钮继承,然后应用如下样式:

public class CustomImageButton:Button{}
<Style TargetType="{x:Type local:CustomImageButton}">
    <Setter Property="Background" Value="LimeGreen"/>
</Style>
<local:CustomImageButton Content="ClickMe"/>
public类CustomImageButton:按钮{}
这是一种非常粗粒度的全局样式,您需要遵循惯例才能使其正常工作


另一种方法是使用主题-阅读更多相关信息。

好的。。。这类工作。我的一个按钮似乎尊重这一变化,但其他按钮则不尊重。如果我给样式一个
x:Key
,然后使用
style=“{StaticResource DisabledButton}”
从每个按钮显式调用它,它们都可以工作。有什么方法可以避免为每个按钮添加显式引用?请确保定义此样式的资源字典在需要应用此样式的所有按钮的范围内。将此样式放置在App.xaml中将对应用程序中的所有按钮可见。向下移动将限制其可见性。不幸的是,到主题的链接已断开。是指向MSDN中有关使用类似主题的文章的链接。
public class CustomImageButton:Button{}
<Style TargetType="{x:Type local:CustomImageButton}">
    <Setter Property="Background" Value="LimeGreen"/>
</Style>
<local:CustomImageButton Content="ClickMe"/>