WPF文本框不会填写StackPanel
我有一个在其Orientation设置为Horizontal的StackPanel内的TextBox控件,但无法获取文本框来填充剩余的StackPanel空间。
XAML:
<Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="180" Width="324"> <StackPanel Background="Orange" Orientation="Horizontal" > <TextBlock Text="a label" Margin="5" VerticalAlignment="Center"/> <TextBox Height="25" HorizontalAlignment="Stretch" Width="Auto"/> </StackPanel> </Window>
这就是它的样子:

为什么该文本框不填写StackPanel?
我知道我可以通过使用Grid控制更多的控制,我只是混淆了布局。
我已经有了与StackPanel相同的问题,行为是“按devise”。 StackPanel是为了在可见区域之外“堆叠”东西,所以它不允许你填充堆栈维度中的剩余空间。
您可以使用LastChildFill设置为true的DockPanel , LastChildFill所有非填充控件停靠在Left以模拟所需的效果。
<DockPanel Background="Orange" LastChildFill="True"> <TextBlock Text="a label" Margin="5" DockPanel.Dock="Left" VerticalAlignment="Center"/> <TextBox Height="25" Width="Auto"/> </DockPanel >