WPF布局网格布局任何大小的行,但高度最小

本文关键字:布局 高度 网格 任何大 WPF | 更新日期: 2023-09-27 18:20:36

嗨,我对XAML很陌生,只是不知道如何创建这个布局。

想象一个有页眉、主区域和页脚的布局。每个区域只是一个图像控件。

我使用的网格定义是:

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

所以所有的空地都被主要区域占用了。这对于纵向窗口非常好,但是当窗口被调整为横向时。页脚和页眉占用了所有的空间,主区域几乎没有剩余空间,实际上我看不到主区域的图像,因为没有剩余空间。

那么,是否可以指定主要区域的最小高度?我试着在主区域中使用MinHeight进行图像控制,但没有什么不同。我希望通过指定最小高度,这将迫使页眉和页脚区域变小,因此这些图像将按比例缩放以保持纵横比,因此它们的宽度也将变小。希望这是有道理的。

有什么想法吗?

WPF布局网格布局任何大小的行,但高度最小

当您将*分别指定为行或列的HeightWidth时,您会告诉它们在其他计算后剩余%。如果有两列的*Width,则它们各占用50%的剩余空间。

当您指定Auto时,它会考虑到内部控件的大小。

行和列定义具有属性MinHeight

因此,您可以尝试设置主行的MinHeight,但我认为它可能不起作用,您也可以指定页眉和页脚行中元素的大小为特定大小(您只能在横向模式下这样做,并在纵向模式下保持原样)

编辑-添加链接以供参考

网格长度结构

GridUnitType枚举

  • 自动-大小由内容对象的大小属性决定
  • 像素-该值以像素表示
  • 星形-该值表示为可用空间的加权比例