3

这是我想做的事情:

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

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

我注意到 WPF 没有为TargetType( UIElement,FrameworkElement等) 中指定的任何超类设置样式。只有当TargetType等同于具体的 UI 类 ( Button, Rectangle) 时,它才会设置样式。

4

1 回答 1

2

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

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

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

这是一个多一点的工作,但也许它会有所帮助。

于 2015-10-26T09:56:53.523 回答