Come rendere automaticamente la larghezza del pulsante il testo di un pulsante?
Domanda
Attualmente sto facendo questo, ma sto facendo qualcosa di sbagliato :):
<Style TargetType="{x:Type Button}">
<Setter Property="MinWidth" Value="90" />
<Setter Property="Width" Value="Auto" />
</Style>
Voglio che i pulsanti abbiano una larghezza minima ma anche che la loro larghezza si espanda per adattarsi al testo del pulsante.
Soluzione
Quello che devi fare è impostare la proprietà HorizontalAlignment su Center (o Right o Left). I pulsanti devono essere allungati dal pannello contenente.
<Style TargetType="{x:Type Button}">
<Setter Property="MinWidth" Value="90" />
<Setter Property="HorizontalAlignment" Value="Center" />
</Style>
Altri suggerimenti
Se l'impostazione HorizontalAlignment
non funziona, controlla di non aver impostato un Width
- che impedirà il ridimensionamento del pulsante. Un trucco pratico è impostare la proprietà Width
su NaN
o ..NaN
a seconda della configurazione dell'applicazione (che non genera mai un errore di compilazione ).
Se hai appena impostato MinWidth del pulsante e se la larghezza del testo è maggiore della larghezza minima, si espanderà automaticamente, ma in caso inverso il pulsante sarà lo stesso della larghezza minima,
<Style TargetType="{x:Type Button}">
<Setter Property="MinWidth" Value="90" />
</Style>
che è sufficiente per archiviare il risultato richiesto