Jak zmienić domyślny styl pakowania w przycisk w WPF?Przycisk tekstowego przycisku WPF
Oczywistym rozwiązaniem od:
<Style x:Key="MyButtonStyle" TargetType="{x:Type Button}">
<Setter Property="TextWrapping" Value="Wrap"></Setter>
</Style>
nie działa, ponieważ Textwrapping nie jest ustawiane nieruchomość tutaj, widocznie.
Gdy próbuję:
<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>
ja po prostu bezwartościowe odpowiedź od kompilatora:
Error 5 After a 'SetterBaseCollection' is in use (sealed), it cannot be modified.
Wyjmowanie tag ControlTemplate utrzymuje błąd.
Poniższa próba daje inny błąd:
<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.
widzę, że mogę ustawić textwrapping dla każdego przycisku z osobna, ale to dość asinine. Jak mogę to zrobić jako styl? Jakie są magiczne słowa?
I na przyszłość, gdzie mogę znaleźć listę tych magicznych słów, więc mogę to zrobić sam? Wpis MSDN jest całkiem bezużyteczny, gdy próbuję dowiedzieć się, które właściwości mogą być ustawione przez setter.
Nie istnieją magiczne słowa. W tym przypadku magiczne słowa to "Treść TemplateBinding". Dzięki, że dałeś mi znać. – mmr