【发布时间】:2011-05-11 07:11:32
【问题描述】:
我为 WPF 中的基本元素设置了一些默认样式,作为应用程序的默认样式,这允许按钮等控件都具有相似的外观,而无需在定义时手动调整,这也意味着只需更改一次。
我的资源字典的 sn-p 如下所示:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="Button">
<Setter Property="Margin" Value="4"/>
<Setter Property="MinWidth" Value="75"/>
<Setter Property="Padding" Value="10,2"/>
</Style>
</ResourceDictionary>
请注意,我将所有边的边距设置为 4。这很棒,因为它提供了按钮之间的间隙,而无需界面显式定义它。我想知道如何为单个按钮移除一侧的间隙,而无需为另一侧定义“4”以使其与父级的一侧对接。
我不想做以下事情,因为它偏离了风格(即,如果我在我的风格中将 4 更改为 5,我也需要在这里做):
<DockPanel>
<Button DockPanel.Dock="Left" Content="My Button" Margin="0,4,4,4" />
</DockPanel>
我只想以某种方式设置MarginLeft,并将其他样式保留为我定义的默认样式。
注意:我确实有一个解决方法,即简单地使用资源字典中定义的“buttonLeft”命名样式,没有左边距。
【问题讨论】: