Элементы управления не изменяют размер при максимизации, а изменяют при перетаскивании - 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%.