Кнопки одинакового размера в соответствии с содержимым самой большой кнопки

Представьте, что у меня есть две кнопки WPF в окне со следующим содержимым:

<Button>OK</Button>
<Button>Cancel</Button>

Я хочу, чтобы эти кнопки были иметь одинаковую ширину, однако в сценарии, где Контент привязан к локализованному значению для данного языка пользователя, я не знаю, какой ширины должны быть кнопки для размещения нового контента.

Как я могу применить минимальную ширину к этим кнопкам, чтобы ширина самой широкой (в зависимости от содержимого) эффективно использовалась как MinWidth для обеих кнопок, таким образом сохраняя их однородность?

Или чтобы Другими словами: я не хочу, чтобы кнопки были шириной своего контейнера (если только использование контейнера не является ответом на мою проблему), и я не хочу, чтобы каждая из них просто соответствовала своему размеру контент, потому что это сделает их разных размеров. Я хочу что-то среднее. Один с наибольшим размером содержимого для отображения его содержимого, а все остальные с размером до той же ширины, поэтому все ширины равны.

Я ожидаю, что ответ заключается в помещении их в какой-то контейнер. Я знаю, что могу использовать сетку и позволить им заполнять «ячейки» сетки, но дело в том, что я не хочу, чтобы они тоже были шириной. Я знаю, что мог бы иметь некоторый код программной части, который запускается на событии Content_Changed кнопок и устанавливает минимальную ширину самой широкой кнопки, но меня интересует метод pure-xaml. Возможно, мне нужно создать настраиваемый элемент управления, расширяющий ItemsControl , который использует код программной части при добавлении или изменении размера новых элементов и применяет ширину самого широкого элемента как MinWidth для все остальные предметы.

Заранее большое спасибо.

29
задан H.B. 2 September 2011 в 18:01
поделиться

1 ответ

Use UniformGrid

<UniformGrid HorizontalAlignment="Right" Rows="1" Columns="2">
  <Button Content="Ok" Grid.Column="0"/>
  <Button Content="Cancel" Grid.Column="1"/>
</UniformGrid>
14
ответ дан 28 November 2019 в 01:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: