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 >