Как сделать ширину кнопки автофитумой текста кнопки?

В настоящее время я делаю это, но я делаю что-то не так:):

   <Style TargetType="{x:Type Button}">
      <Setter Property="MinWidth" Value="90" />
      <Setter Property="Width" Value="Auto" />
   </Style>

Я хочу, чтобы кнопки имели минимальную ширину, а также чтобы их ширина расширялась, чтобы соответствовать тексту кнопки.

Ответ 1

Вам нужно установить свойство HorizontalAlignment в центр (или вправо или влево). Кнопки должны растягиваться с помощью панели.

   <Style TargetType="{x:Type Button}">
      <Setter Property="MinWidth" Value="90" />
      <Setter Property="HorizontalAlignment" Value="Center" />
   </Style>

Ответ 2

Если установка HorizontalAlignment не работает, убедитесь, что вы не установили Width - это не позволит изменять размер кнопки. Удобный трюк устанавливает свойство Width в NaN или ..NaN в зависимости от вашей конфигурации приложения (которая никогда не бросает ошибку компиляции).

Ответ 3

Если вы только установили кнопку MinWidth и если ширина текста больше минимальной, она будет автоматически расширяться, но в обратном случае кнопка будет одинаковой с вашей минимальной шириной,

<Style TargetType="{x:Type Button}">
      <Setter Property="MinWidth" Value="90" />
</Style>

этого достаточно, чтобы архивировать до требуемого результата