0

在网格中,我有一个列表框,在列表框下,我有一个图像。当主窗口水平变小时,我的图像保持其比例但尺寸减小,因为它停靠在底部的网格上并且尺寸是自动的。

我的列表框底部是否可能等于图像位置?

就像是:

On image_resize 
{
    listbox.Height = image.Location;
}
4

1 回答 1

3

如果您正在寻找扩展列表框以填充剩余空间,那么您至少有两个解决方案。

使用 DockPanel:

<DockPanel LastChildFill="True">
    <Image Source="..." Dock.DockPanel="Bottom"/>
    <ListBox ItemsSource="{...}" DockPanel.Dock="Top"/>
</DockPanel>

虽然 Image 是列出的第一个元素,但它停靠在底部,因此它位于 ListBox 下方。因为 ListBox 是 DockPanel 中的最后一个元素,它将拉伸以填充剩余空间。有关 DockPanel 的更多信息,请参阅此链接

使用网格:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>

    <ListBox Grid.Row="0"/>

    <Image Grid.Row="1"/>
</Grid>

使用 Grid 您可以请求行自动调整大小以适合其内容,它可以调整自身大小以填充剩余空间,或者可以给定特定高度。*符号表示填充剩余空间。有关网格布局的更多信息,请参阅此链接,有关快速教程的此链接。

于 2012-04-29T04:58:24.093 回答