Следующий фрагмент дает такой результат:
<DockPanel Width="240">
<ComboBox HorizontalAlignment="Stretch">
<ComboBoxItem Content="A" />
<ComboBoxItem Content="B" />
<ComboBoxItem Content="C" />
</ComboBox>
</DockPanel>
Как мы видим, ComboBox
заполняет всю DockPanel
ширинухорошо, как и должно быть.Если мы добавим следующее StackPanel
сразу после ComboBox
, мы получим следующее:
<StackPanel Orientation="Horizontal" Width="120" Visibility="Visible" Background="Aqua">
<TextBox Width="60" />
<TextBox Width="60" />
</StackPanel>
Мы только что получилиПервая проблема: не должен ли ComboBox
заполнить другие 120 пикселей DockPanel
, потому что это HorizontalAlignment=Stretch
, а поскольку StackPanel
использует другие 120?
Наименее, если мы повернемнаши StackPanel.Visibility
в Hidden/Collapsed
, у нас будет это:
Как я могу сделать ComboBox
для заполнения всего DockPanel.Width
ГОРИЗОНТАЛЬНО , как и первое изображение, когда StackPanel.Visibility
равно Hidden/Collapsed
?
Все элементы управления должны быть выровнены по горизонтали, и DockPanel
не является обязательным для достижения этого.