Некоторые элементы управления WPF (например, Button
), похоже, с удовольствием занимают все доступное пространство в его контейнере, если вы не укажете высоту, которую он должен иметь.
А некоторые, такие как те, которые мне нужны сейчас, (многострочные) TextBox
и ListBox
, похоже, больше беспокоятся о том, чтобы просто занять место, необходимое для их содержимого, и не более того.
Если вы поместите этих парней в клетку в UniformGrid
, они расширятся, чтобы соответствовать доступному пространству. Однако экземпляры UniformGrid
подходят не для всех ситуаций. Что если у вас есть сетка с некоторыми строками, установленными на * высоту, чтобы разделить высоту между собой и другими * строками? Что если у вас есть StackPanel
, а у вас есть Label
, List
и Button
, как вы можете получить список, занимающий все пространство, не занятое меткой и кнопкой?
Я бы подумал, что на самом деле это будет основным требованием к макету, но я не могу понять, как заставить их заполнить пространство, которое они могли бы (поместить их в DockPanel
и установить для заполнения также не похоже, что это работает, поскольку DockPanel
занимает только пространство, необходимое для его 'субконтроля).
Изменение размера графического интерфейса было бы ужасно, если бы вам пришлось играть с Height
, Width
, MinHeight
, MinWidth
и т. Д.
Можете ли вы связать свои свойства Height
и Width
с ячейкой сетки, которую вы занимаете? Или есть другой способ сделать это?