在网格中,我有一个列表框,在列表框下面,我有一个图像。当主窗口水平变小时,我的图像保持其比例但尺寸减小,因为它停靠在底部的网格上并且尺寸是自动的。
我的列表框底部是否可以等于图像位置?
类似的东西:
On image_resize
{
listbox.Height = image.Location;
}
答案 0 :(得分:2)
如果您正在寻找要扩展的列表框以填充剩余空间,那么您至少有两个解决方案。
使用DockPanel:
<DockPanel LastChildFill="True">
<Image Source="..." Dock.DockPanel="Bottom"/>
<ListBox ItemsSource="{...}" DockPanel.Dock="Top"/>
</DockPanel>
虽然Image是列出的第一个元素,但它停靠在底部,因此它被放置在ListBox下面。因为ListBox是DockPanel中的最后一个元素,所以它将拉伸以填充剩余空间。有关DockPanel的详细信息,请参阅this link。
使用网格:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ListBox Grid.Row="0"/>
<Image Grid.Row="1"/>
</Grid>
使用网格,您可以请求一行自动调整大小以适应其内容,它可以调整自身大小以填充剩余空间,或者可以为其指定特定高度。 *
表示法表示填充剩余空间。有关网格布局的详细信息,请参阅this link;有关快速教程的信息,请参阅this link。