在.NET WPF中,我有以下XAML代码:
<StackPanel>
<StackPanel.Resources>
<Style TargetType="FrameworkElement">
<Setter Property="Margin" Value="5" />
</Style>
</StackPanel.Resources>
<CheckBox>Check 1</CheckBox>
<TextBox>Some text...</TextBox>
</StackPanel>
控件没有应用任何边距。
是否可以将样式应用于多个控件(不同类型),而不使用键在每个控件上显式设置样式?
样式是而不是继承的,您可以使用BasedOn
将子类的样式建立在该样式的基础上。
这种情况下的另一种方法应该是使用ItemsControl
,其中ItemContainerStyle
设置为此样式。
这两种方法都有例子。
对不起,我在写这篇文章之前看错了这个问题 如果您想在StackPanel中设置多个复选框的样式,我的答案很有用
通过将整个应用程序放入app.xaml的合并词典中,对其进行隐式样式设置。
<Style TargetType="CheckBox" BasedOn="{DynamicResource YourBaseStyle}"/>
这也适用于更小的范围。将范围缩小到StackPanel只需要将同一行代码添加到StackPanel.Resources
标记中。