在StackPanel中填充所有可用空间

22
<Window x:Class="DataBinding_01.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <StackPanel Height="Auto" Name="stackPanel1" Width="Auto">        
        <TextBox Height="23" Name="textBox1" Width="Auto" />
        <TextBox Height="23" Name="textBox2" Width="Auto" />
        <Button Content="Button" Name="button1" Width="Auto" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" />
    </StackPanel>
</Window>

我想让按钮填满StackPanel中的所有可用空间。我该怎么做?


1
(说真的,在相关部分,这是第一个问题,你应该在发帖之前就看到了;第三个建议也可以(还有可能更多)) - H.B.
我读了那个问题。它听起来描述了一种情况,你想要一个水平方向的stackpanel填充所有垂直空间。这不是同一个东西。 - Kyle Delaney
1个回答

47

如果您想填充所有水平和垂直空间,则应使用 DockPanel。

    <DockPanel Height="Auto" Name="stackPanel1" Width="Auto" LastChildFill="True">
        <TextBox DockPanel.Dock="Top" Height="23" Name="textBox1" Width="Auto" />
        <TextBox DockPanel.Dock="Top" Height="23" Name="textBox2" Width="Auto" />
        <Button Content="Button" Name="button1" Width="Auto" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" />
    </DockPanel>

5
Windows Store 应用程序不再支持 dockPanel :( - Teoman shipahi
3
你可以尝试使用带有 RowdefinitionsGrid - VRage

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接