如何更改WPF中按鈕的默認textwrapping樣式?WPF按鈕textwrap樣式
的顯而易見的解決方案:
<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.
刪除控件模板標籤保持錯誤。
下嘗試產生了不同的錯誤:
<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.
我看到,我可以爲每個單獨的按鈕textwrapping,但是這是非常愚蠢的。我怎樣才能做到這一點?什麼是神奇的話語?
爲了將來的參考,我在哪裏可以找到這些魔術詞的列表,所以我可以自己做這個?當我嘗試瞭解setter可以設置哪些屬性時,MSDN條目是無用的。
沒有,有魔力的話。在這種情況下,神奇的單詞是「TemplateBinding內容」。謝謝你讓我知道。 – mmr 2009-04-16 00:39:21