在不使用键的情况下将样式应用于多个控件



在.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标记中。

相关内容

  • 没有找到相关文章

最新更新