在一个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样式,并分别使用它们。