如何将控件 A 的底部停靠到可变大小控件 B 的位置

本文关键字:控件 位置 停靠 底部 | 更新日期: 2023-09-27 18:32:40

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

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

像这样:

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

如何将控件 A 的底部停靠到可变大小控件 B 的位置

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

使用扩展坞面板:

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

虽然图像是列出的第一个元素,但它停靠在底部,以便将其布置在ListBox下方。由于列表框是 DockPanel 中的最后一个元素,因此它将拉伸以填充剩余空间。有关 DockPanel 的详细信息,请参阅此链接。

使用网格:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <ListBox Grid.Row="0"/>
    <Image Grid.Row="1"/>
</Grid>

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