WPF窗口格式不能按预期工作

时间:2009-05-09 21:21:54

标签: wpf

我有一个WPF窗口,我希望窗口顶部的一部分只是其中包含的所有元素的高度。窗户的底部应该是可调节的高度区域。如果窗口较高,则底部应该是生长的部分,而不是顶部。

在窗口的底部,我想要包含两个部分。顶部应该是可调节高度部分,底部部分应该是显示其中包含的所有元素所需的高度。

如果查看下面的xaml代码,您会看到我总共定义了三个网格。外部网格有两个行定义,其中顶行设置为“自动”,以便高度足以包含其中包含的所有元素。第二行应该是可调整的,以允许它填充窗口大小的其余部分。

在外部网格的第二行内部是另一个网格,应该允许第一行对于高度是灵活的,而第二行对于包含在其中的所有元素来说足够高。

我遇到的问题是整个窗口没有填满。底部网格仅在外窗上向下一部分。为什么整个窗口不是由底部网格填充?如何更改定义以允许此操作?

<Window x:Class="WPFSample.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid x:Name="LayoutRoot">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition />
        <RowDefinition Height="*" />
        <RowDefinition />
    </Grid.RowDefinitions>
    <Grid x:Name="TopGrid" VerticalAlignment="Top" Width="Auto" Height="Auto" Grid.Row="0">
        <Button Height="23" HorizontalAlignment="Left" Margin="60,0,0,4" Name="button1" VerticalAlignment="Bottom" Width="75">Button</Button>
    </Grid>
    <Grid x:Name="BottomGrid" Width="Auto" Height="Auto" VerticalAlignment="Bottom" Grid.Row="1">
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
            <RowDefinition />
            <RowDefinition Height="Auto" />
            <RowDefinition />
        </Grid.RowDefinitions>
        <Button Grid.Row="0" Height="23" Margin="60,0,61,4" Name="button2" VerticalAlignment="Bottom">Button</Button>
        <Button Grid.Row="1" Height="23" Margin="60,0,61,4" Name="button3" VerticalAlignment="Bottom">Button</Button>
    </Grid>
</Grid>

1 个答案:

答案 0 :(得分:0)

我想出了这个。除了我认为的两个之外,我定义了多个行定义。删除多余的格式后,格式化工作正常。