【发布时间】:2015-11-17 06:31:08
【问题描述】:
在 WPF 中,我对某些控件的默认样式不满意,例如 <Button />,默认情况下它与本机 Win32 按钮的尺寸不同。幸运的是,通过应用 MinWidth 和 Margin 属性很容易解决。
我没有手动将这些属性应用于 XAML 中的每个 <Button />,而是将它们设置为我的 App.xaml 文件的 ResourceDictionary 中的样式,如下所示:
<Style TargetType="Button">
<Setter Property="Margin" Value="4" />
<Setter Property="MinWidth" Value="73" />
</Style>
但是,这意味着 UI 中的所有按钮现在都具有这种样式,例如嵌套在 <DatePicker /> 甚至 <MenuItem /> 中的按钮,使 UI 变得更糟。
我知道我可以将x:Key="b" 添加到<Style />,然后将我的XAML 更改为<Button Style={StaticResource b} />,但这看起来就像在每个控件实例上手动设置属性一样麻烦。
有没有办法只将样式应用到 my 控件而不是嵌套在其他 UI 组件中的控件?即我希望我自己的 XAML 中的所有 <Button /> 实例具有相同的样式,但不是内置 WPF 控件或任何第三方库中的按钮。
【问题讨论】: