我有一个TextBox
控制在一个StackPanel
whose Orientation
被设定为Horizontal
,但无法让 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>
这就是它的样子:
为什么 TextBox 没有填充 StackPanel?
我知道我可以通过使用来获得更多控制Grid
控制,我只是对布局感到困惑。
我也遇到过同样的问题StackPanel
,并且该行为是“设计使然”。StackPanel
意味着即使在可见区域之外也可以“堆叠”事物,因此它不允许您填充堆叠维度中的剩余空间。
您可以使用DockPanel
with LastChildFill
set to true
并将所有非填充控件停靠到Left
来模拟你想要的效果。
<DockPanel Background="Orange" LastChildFill="True">
<TextBlock Text="a label" Margin="5"
DockPanel.Dock="Left" VerticalAlignment="Center"/>
<TextBox Height="25" Width="Auto"/>
</DockPanel>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)