Почему текстовое поле не растягивается, чтобы заполнить пространство в стеке? Это по замыслу? В сетке текстовое поле растягивается, как и ожидалось.
Да, это по замыслу. StackPanel выделит пространство, которое запрашивает TextBox. Если вы не установили ширину для TextBox, для ее размещения потребуется только ширина, достаточная для текста.
StackPanel
TextBox
Ответ Кента кажется правильным. Чтобы по-прежнему принудительно переопределять поведение StackPanel, я думаю, что вам нужно динамически вычислять-устанавливать свойство Width содержащихся элементов ИЛИ какой-нибудь броский переопределение MeasureOverride . Я бы предпочел использовать другой менеджер макетов / панель. Некоторые вещи, которые я отметил ..
StackPanel будет растягивать элементы на основе значения свойства Orientation. Итак
Значением по умолчанию является растяжение для обоих Горизонтальное выравнивание и VerticalAlignment содержимого, которое содержится в StackPanel.
HorizontalAlignment
Когда свойства Высота и Ширина явно установлен на элементе, эти измерения имеют более высокий прецедент во время макета и отменит типичные эффекты настройки Горизонтальное выравнивание по растяжению.
Мне нужно, чтобы элементы были одинакового размера, но сложены вертикально.
Я использовал UniformGrid и установил для свойства Columns значение 1. (протестировано с TextBox, и оно растягивается так, как вы хотите)