У меня есть Сетка с двумя столбцами и двумя строками.В первом столбце первой строки у меня есть это:
<StackPanel Orientation="Vertical" HorizontalAlignment="Stretch" Grid.ColumnSpan="1" Grid.Row="0" Grid.Column="0">
<StackPanel Orientation="Horizontal" Height="25" HorizontalAlignment="Stretch">
<Label Content="Text:"/>
<TextBox Name="TB_Text" HorizontalAlignment="Stretch" MinWidth="120" />
<Button Name="BT_TextApply" Content="Apply" Width="75" HorizontalAlignment="Right" Click="BT_TextApply_Click" />
</StackPanel>
</StackPanel>
У меня есть «строки» (горизонтальные стековые панели внутри вертикальной стековой панели), состоящие из метки, текстового поля и кнопки, которая принадлежит друг другу.
StackPanels получили атрибут HorizontalAlignment="Stretch"
, так что они используют все пространство в своей ячейке таблицы, это нормально.
Но теперь я хочу, чтобы мои три элемента также заполнили все доступное пространствоStackPanel, но я не могу заставить его работать.
Текущее поведение
- Метка не имеет ширины, она занимает пространство, которое занимает текст в
content
нуждается, на данный момент это нормально. - Текстовое поле имеет минимальную ширину и становится больше, когда я заполняю его текстом,
- кнопка находится справа от текстового поля и перемещаетсявправо, когда TextBox становится больше и исчезает при его перемещении за пределы StackPanel
Требуемое поведение
- Метка не имеет ширины, которую она занимаетпространство, которое тxt в
content
нуждается, на данный момент это нормально. - Кнопка должна иметь фиксированную ширину (без проблем) и должна придерживаться правой границы моей StackPanel, это не работает
- TextBox должен использовать оставшееся пространство между ними и не больше, даже если он заполнен большим количеством текста, чем умещается.
Есть ли что-то вроде атрибута "max" для моего TextBox, зависит отразмер StackPanel?