在网格中,我有一个列表框,在列表框下,我有一个图像。当主窗口水平变小时,我的图像保持其比例但尺寸减小,因为它停靠在底部的网格上并且尺寸是自动的。
我的列表框底部是否可能等于图像位置?
就像是:
On image_resize
{
listbox.Height = image.Location;
}
在网格中,我有一个列表框,在列表框下,我有一个图像。当主窗口水平变小时,我的图像保持其比例但尺寸减小,因为它停靠在底部的网格上并且尺寸是自动的。
我的列表框底部是否可能等于图像位置?
就像是:
On image_resize
{
listbox.Height = image.Location;
}
如果您正在寻找扩展列表框以填充剩余空间,那么您至少有两个解决方案。
使用 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 您可以请求行自动调整大小以适合其内容,它可以调整自身大小以填充剩余空间,或者可以给定特定高度。*
符号表示填充剩余空间。有关网格布局的更多信息,请参阅此链接,有关快速教程的此链接。