如何更改 WPF 中按钮的默认文本环绕样式?
显而易见的解决方案:
<Style x:Key="MyButtonStyle" TargetType="{x:Type Button}">
<Setter Property="TextWrapping" Value="Wrap"></Setter>
</Style>
不起作用,因为 Textwrapping 显然在这里不是可设置的属性。
如果我尝试:
<Style x:Key="MyButtonStyle" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<TextBlock Text="{Binding}" Foreground="White" FontSize="20" FontFamily="Global User Interface" TextWrapping="Wrap"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
我只是从编译器那里得到一个毫无价值的回应:
Error 5 After a 'SetterBaseCollection' is in use (sealed), it cannot be modified.
删除 ControlTemplate 标记会保留错误。
以下尝试产生不同的错误:
<Setter Property="TextBlock">
<TextBlock Text="{Binding}" Foreground="White" FontSize="20" FontFamily="Global User Interface" TextWrapping="Wrap"/>
</Setter>
Error 5 The type 'Setter' does not support direct content.
我看到我可以为每个按钮单独设置文本换行,但这非常愚蠢。我怎样才能把它作为一种风格?什么是神奇的词?
为了将来参考,我在哪里可以找到这些神奇单词的列表,这样我就可以自己做这件事了?当我试图找出 setter 可以设置哪些属性时,MSDN 条目毫无用处。