Элементы управления не изменяют размер при максимизации, а изменяют при перетаскивании - wpf

Вопрос по WPF: когда я максимизирую свое окно, элементы управления не меняют размер, что остается без ответа.

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

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

Я добавил аналогичный код в событие с измененным состоянием, однако это ничего не делает. Я пробовал прямо TextBox1.Width = 300; но это не меняет размер после максимизации.

В идеале то, что я хочу, это сказать TextBox1.Width = Window.width/3; TextBox1.Margin = My_Margin; Где My_Margin устанавливает левое поле равным 1/3 Window.Width. Так что текстовое поле занимает центральную треть окна.

РЕДАКТИРОВАТЬ: Я понимаю, что метод GRID был путь с самого начала проекта. Есть ли обходной путь, который я могу сделать на этом этапе в C# вместо необходимости переделывать форму?

РЕДАКТИРОВАТЬ: приняли лучший ответ, хотя он не отвечает на фактический вопрос, так как выглядит, как единственный вариант, который у меня есть. Я знаю, что есть способ изменить размеры элементов управления после того, как форма развернута, у меня нет времени, чтобы найти ее, и никаких хороших предложений не поступило.

1 ответ

Решение

Используйте сетку, определите столбцы (с их шириной) и строки и поместите текстовое поле, используя свойства Grid.Row и Grid.Column. Также в сетке WPF * для ширины и высоты означает пропорциональный размер. Так, например, если у вас есть 2 столбца, определенные как эти

<Grid.ColumnDefinitions>
     <ColumnDefinition Width="1*"></ColumnDefinition>
     <ColumnDefinition Width="9*"></ColumnDefinition>
</Grid.ColumnDefinitions>

вы говорите wpf, что первый столбец будет занимать 10% от общей доступной ширины, а второй - 90%.

Другие вопросы по тегам