如何使用单一样式对UWP中的嵌套控件进行样式设置



在一个UWP项目中,我在一个按钮内的Border中得到了一个TextBlock。像这样:

<Button Style="{StaticResource MyBtnStyle}">
<Border>
<TextBlock/>
</Border>
</Button>

我想设置一个可以同时自定义所有控件的样式。类似这样的东西:

<Style x:Name="MyBtnStyle" TargetType="Button">
<Setter Property="Background" Value="Gray"/>
<Style TargetType="Border>
<Setter Property="BorderThickness" Value="0,0,0,5"/>
<Style TargetType="TextBlock">
<Setter Property="FontSize" Value="20"/>
</Style>
</Style>  
</Style>

有办法做到这一点吗?如果没有,最好的解决方法是什么?

不,你不能那样做。你可以为按钮创建一个样式并更改它的模板属性。然后你可以自定义边框和文本块,因为你想在默认按钮样式中替换默认的ContentPresenter。

另一种方法是为每个零件创建三个sperate样式,并分别使用它们。

最新更新