2 回答
TA贡献1848条经验 获得超2个赞
在Style您创建仅定位Control,而不是从派生的元素Control。如果您未设置,x:Key则将其隐式设置为TargetType,因此根据您的情况x:Key="{x:Type Control}"。
没有指定任何直接的方式Style是针对从派生的所有元素TargetType的Style。您还有其他选择。
如果您有以下内容 Style
<Style x:Key="ControlBaseStyle" TargetType="{x:Type Control}">
<Setter Property="Margin" Value="50" />
</Style>
您可以针对所有Buttons例如
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource ControlBaseStyle}"/>
或直接在任何元素上使用样式,例如 Button
<Button Style="{StaticResource ControlBaseStyle}" ...>
TA贡献1789条经验 获得超8个赞
正如Fredrik Hedblad回答的那样,您可以影响从控件继承的所有元素。
但是,例如,您不能将样式应用于相同样式的文本块和按钮。
要做到这一点:
<Style x:Key="DefaultStyle" TargetType="{x:Type FrameworkElement}">
<Setter Property="Control.Margin" Value="50"/>
</Style>
<Style TargetType="TextBlock" BasedOn="{StaticResource DefaultStyle}"/>
<Style TargetType="Button" BasedOn="{StaticResource DefaultStyle}"/>
- 2 回答
- 0 关注
- 696 浏览
添加回答
举报