Comment faire pour que la largeur du bouton s'adapte automatiquement au texte d'un bouton?
Question
Je le fais actuellement, mais je fais quelque chose de mal:):
<Style TargetType="{x:Type Button}">
<Setter Property="MinWidth" Value="90" />
<Setter Property="Width" Value="Auto" />
</Style>
Je souhaite que les boutons aient une largeur minimale mais que leur largeur s’agrandisse pour s’adapter au texte du bouton.
La solution
Ce que vous devez faire est de définir la propriété HorizontalAlignment sur Centre (ou Droite ou Gauche). Les boutons doivent être étendus par le panneau qui les contient.
<Style TargetType="{x:Type Button}">
<Setter Property="MinWidth" Value="90" />
<Setter Property="HorizontalAlignment" Value="Center" />
</Style>
Autres conseils
Si la définition de HorizontalAlignment
ne fonctionne pas, vérifiez que vous n'avez pas défini de Largeur
, ce qui empêchera le bouton de redimensionner. Une astuce pratique consiste à définir la propriété Width
sur NaN
ou .. NaN
en fonction de la configuration de votre application (qui ne génère jamais d'erreur de compilation). ).
Si vous définissez simplement le paramètre MinWidth du bouton et si la largeur de votre texte est supérieure à la largeur minimale, il s'agrandira automatiquement, mais dans le cas contraire, le bouton sera identique à votre largeur minimale,
<Style TargetType="{x:Type Button}">
<Setter Property="MinWidth" Value="90" />
</Style>
qui est suffisant pour archiver le résultat requis