Come rendere automaticamente la larghezza del pulsante il testo di un pulsante?

StackOverflow https://stackoverflow.com/questions/1409436

  •  05-07-2019
  •  | 
  •  

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.

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top