Come si modifica lo stile predefinito per il textwrapping di un pulsante in WPF?Stile WPF per il textwrap
La soluzione più ovvia di:
<Style x:Key="MyButtonStyle" TargetType="{x:Type Button}">
<Setter Property="TextWrapping" Value="Wrap"></Setter>
</Style>
non funziona, perché TextWrapping non è una proprietà impostabile qui, a quanto pare.
se provo:
<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>
ho appena ottenere una risposta inutile dal compilatore:
Error 5 After a 'SetterBaseCollection' is in use (sealed), it cannot be modified.
Rimozione del tag ControlTemplate mantiene l'errore.
Il seguente tentativo produce un errore diverso:
<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.
vedo che posso impostare la TextWrapping per ogni pulsante individualmente, ma questo è abbastanza stupido. Come posso farlo come stile? Quali sono le parole magiche?
E per riferimento futuro, dove posso trovare un elenco di queste parole magiche, quindi posso farlo da solo? La voce MSDN è piuttosto inutile quando cerco di scoprire quali proprietà possono essere impostate dal setter.
No, non ci sono parole magiche. In questo caso, le parole magiche erano "TemplateBinding Content". Grazie per avermi fatto sapere. – mmr