c# - 如何修复不同屏幕尺寸和不同窗口尺寸的 Gridview 高度?
问题描述
只是一个简单的问题,我一直无法找到令人满意的答案。在 UWP 应用程序上工作,在某些部分我在 Grid 中有一个 GridView。当然,为了在应用程序中启用滚动,我必须给 GridView 一个高度(比如说 650),这个高度可能适用于小屏幕,但在较大的屏幕上,一半的应用程序未使用!...即使只是在调整大小时应用程序窗口高度似乎 GridView 可以在某些尺寸下工作,但不能在其他尺寸下工作......我该如何解决这个问题或至少解决它?我希望 Gridview 的高度链接到应用程序窗口的高度。有任何想法吗 ?
解决方案
当您在 Grid 中有一个 GridView 时,您总是可以只给出它RowDefinition
的ColumnDefinition
值"*"
那么它总是会占用窗口上未分配的空间。
一个小例子:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="150"/>
<RowDefinition Height="*"
MinHeight="50"
MaxHeight="500"/>
<RowDefinition Height="150"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="150"/>
<ColumnDefinition Width="*"
MinWidth="100"
MaxWidth="1000"/>
<ColumnDefinition Width="150"/>
</Grid.ColumnDefinitions>
<GridView Grid.Row="1"
Grid.Column="1">
</GridView>
</Grid>
请注意,我还添加了最大和最小高度/宽度的值。有了它,您可以进一步限制网格中项目的大小。
您应该记住的唯一一件事是,当您使用该"*"
值时,它将占用所有其余空间(如果设置了 max/min,则在其限制范围内)。但是,当您有两个具有该值的定义时,如下所示:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="150"/>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="150"/>
</Grid.ColumnDefinitions>
然后两列/行将占用相同数量的空间。假设我们的窗口宽度为 800,那么两列将共享中间的 500。它们都占用 250。
你也可以这样写来改变它:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="2*" />
</Grid.ColumnDefinitions>
这将为第二列分配两倍于第一列的屏幕宽度。假设我们的屏幕宽度为 900。那么第一列将是 300 宽,第二列将是 600 宽。
推荐阅读
- python - Django-为什么我得到这个编程错误
- amazon-ec2 - 错误:从启动模板启动实例时。“参数 groupid 的 value() 无效。该值不能为空”
- snakemake - snakemake 是否可以自动生成报告和 DAG 图像?
- python - 用特定字符串替换/移动值 [pandas]
- javascript - 制表符:带有标签的链接
- mysql - 从表中获取总和小于值的行
- c# - 将变量从角度传输到 c# web api
- javascript - 将 Html Css 转换为 Pdf 并下载,与设计相同
- python - Python 3.7:除了第一行之外,如何使用 readlines() 读取整个文件?
- c# - c# SQL如何将字符串列表加入另一个WebApi访问另一个数据库表