1

在 .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>

控件没有应用任何边距。

是否可以在不使用键在每个控件上显式设置样式的情况下将样式应用于多个控件(不同类型的) ?

4

2 回答 2

1

样式不是继承的,您可以使用BasedOn.

在这种情况下,另一种方法应该是使用ItemsControl带有ItemContainerStyle此样式的集合。

这个答案中有两种方法的例子。

于 2012-08-21T18:14:36.880 回答
1

对不起,我在写这个之前误读了这个问题。 如果您想在 StackPanel 中设置多个复选框的样式,我的回答很有用。

通过将其放入 app.xaml 的合并字典中来隐式设置整个应用程序的样式。

<Style TargetType="CheckBox" BasedOn="{DynamicResource YourBaseStyle}"/>

这也适用于更小的范围。将范围缩小到 StackPanel 只需要您将同一行代码添加到您的StackPanel.Resources标签中。

于 2012-08-21T18:15:07.397 回答