如何定位所有控件(WPF样式)

我可以指定一种适用于所有元素的样式吗?我试过了


<Style TargetType="Control">

    <Setter Property="Margin" Value="0,5" />

</Style>

但是它什么也没做


达令说
浏览 697回答 2
2回答

慕尼黑5688855

在Style您创建仅定位Control,而不是从派生的元素Control。如果您未设置,x:Key则将其隐式设置为TargetType,因此根据您的情况x:Key="{x:Type Control}"。没有指定任何直接的方式Style是针对从派生的所有元素TargetType的Style。您还有其他选择。如果您有以下内容 Style<Style x:Key="ControlBaseStyle" TargetType="{x:Type Control}">&nbsp; &nbsp; <Setter Property="Margin" Value="50" /></Style>您可以针对所有Buttons例如<Style TargetType="{x:Type Button}" BasedOn="{StaticResource ControlBaseStyle}"/>或直接在任何元素上使用样式,例如 Button<Button Style="{StaticResource ControlBaseStyle}" ...>

拉丁的传说

正如Fredrik Hedblad回答的那样,您可以影响从控件继承的所有元素。但是,例如,您不能将样式应用于相同样式的文本块和按钮。要做到这一点:&nbsp; &nbsp; <Style x:Key="DefaultStyle" TargetType="{x:Type FrameworkElement}">&nbsp; &nbsp; &nbsp; &nbsp; <Setter Property="Control.Margin" Value="50"/>&nbsp; &nbsp; </Style>&nbsp; &nbsp; <Style TargetType="TextBlock" BasedOn="{StaticResource DefaultStyle}"/>&nbsp; &nbsp; <Style TargetType="Button" BasedOn="{StaticResource DefaultStyle}"/>
打开App,查看更多内容
随时随地看视频慕课网APP