Высота строки сетки WPF Авто

Это похоже на некоторые другие вопросы, которые я видел здесь, но недостаточно близко ...

У меня сетка с тремя рядами. Первая строка содержит настраиваемую сетку, в которой я хочу иметь как можно больше места. Я установил его высоту на "*". Второй ряд - это ряд кнопок; это «Авто». Третья строка - это пользовательский элемент управления, который содержит другую настраиваемую сетку с непредсказуемым количеством строк (ни одной во время разработки, заполнение во время выполнения).

Если я установлю для третьей строки значение «Авто», в ней вообще не будет места. Мне нужно понять, что я должен делать после загрузки сетки третьего ряда, чтобы затем выяснить, каким должно быть «Авто». Или, если «Авто» не применяется, как еще мне заставить третью строку занимать «Достаточно места»?

Должна ли моя настраиваемая сетка запускать что-то вроде события с измененным размером после загрузки?


person Kelly Cline    schedule 18.11.2011    source источник


Ответы (2)


Тебе не нужно ничего делать

Если для 3-й строки установлено значение «Авто», она будет изменяться в соответствии с размером ее содержимого. Если размер содержимого изменится во время выполнения, изменится и размер строки.

Вы также можете установить ограничения на высоту строки, установив MinHeight и MaxHeight в третьей строке, чтобы она не становилась меньше или больше указанной высоты.

person Rachel    schedule 18.11.2011
comment
Вот чего я боялся. По-видимому, наш настраиваемый элемент управления работает с тем, какое пространство у него есть, и не позволяет изменять его размер. Если я принудительно установлю новую высоту, изменение размера будет вести себя так, как вы говорите. - person Kelly Cline; 19.11.2011

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

person N_A    schedule 18.11.2011