WPF使用UIElement设置所有元素的样式

时间:2013-02-18 11:23:37

标签: wpf styling uielement

这是我想要做的事情:

<Application.Resources>
    <Style TargetType="{x:Type UIElement}">
        <Setter Property="Opacity"
                Value=".1" />
    </Style>
</Application.Resources>

这样我可以设置任何类型的样式(不仅仅是最终的具体UI类型)。我不是在寻找最佳实践,而是更多需要思考的问题。

我注意到WPF没有设置TargetTypeUIElementFrameworkElement等等中指定的任何超类的样式。仅当TargetType等同于具体的UI类(ButtonRectangle)时才会设置样式。

1 个答案:

答案 0 :(得分:0)

如果您只想定义基本样式,则可以使用BasedOn属性。

<Style TargetType="FrameworkElement" x:Key="ElementBase">
    <Setter Property="Height" Value="24"/>
</Style>

<Style TargetType="TextBlock" BasedOn="{StaticResource ElementBase}">
</Style>

这是一项更多的工作,但也许有所帮助。