如何在面板中应用所有控件的样式

时间:2011-07-13 05:04:02

标签: c# wpf xaml controls styles

  

可能重复:
  How to target all controls (WPF Styles)

我的面板包含多种控件,例如Button, TextBox,...以及所有这些控件都来自Control。我想为所有这些设置保证金,我希望为Control定义样式会自动将属性设置为所有控件,但它不起作用。

<WrapPanel>

    <WrapPanel.Resources>
        <Style TargetType="Control">
            <Setter Property="Margin" Value="5,5,0,0" />
        </Style>
    </WrapPanel.Resources>

    <Button Content="Button 1" />
    <Button Content="Button 2" />
    <TextBox Width="100" />

</WrapPanel>

1 个答案:

答案 0 :(得分:1)

不幸的是,我不认为这是可能的:( 另见: How to target all controls (WPF Styles)

上面的xaml代码中有一个小错误,它应该说是TargetType =“{x:Type Control}”,xaml解析器设置一个Type对象(而不是字符串)。

因此,您必须为每种控件类型创建样式。 另一个选项可能是使用样式继承(基于另一种样式),但我认为代码行的数量将是相同的。

希望有所帮助。