【问题标题】:Windows store app layout: ListView to fill remaining spaceWindows 商店应用布局:ListView 填充剩余空间
【发布时间】:2014-12-04 22:18:51
【问题描述】:

我想要一个在另一个之上的控件。其中一个应该在底部,并且上面应该有一个 ListView,它应该会填满剩余的所有可用空间。我尝试将它们添加到 StackPanel,使用 VerticalAlignment="Bottom",但是 ListView 不可滚动,并且不关心它剩余的空间。

【问题讨论】:

    标签: c# xaml listview windows-store-apps stackpanel


    【解决方案1】:

    StackPanel 将格式化以适应其内容,为 ListView 提供无限空间,然后跟踪其他控件,可能超出可见范围。而是使用网格并设置行高以匹配您的设计。比如:

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
            <RowDefinition Height="auto" />
        </Grid.RowDefinitions>
        <ListView Grid.Row="0"></ListView>
        <Button Grid.Row="1" />
    </Grid>
    

    Height="auto" 表示根据内容计算高度。 Height="*" 表示使用剩余空间(或者如果有多个 * 则将剩余空间分开)。有关详细信息,请参阅RowDefinition.Height 文档中的备注。

    【讨论】:

    • 谢谢,这很好用。我想知道为什么教程从来没有提到自动设置。