c# - 如何使我的所有(或大部分)元素在 C# WPF 中使用响应式布局?
问题描述
所以我使用“*”键将总宽度划分为不同的响应区域。但显然我不能到处使用网格,有些元素不支持它等等。所以我的问题是如何保持这些元素的灵活性?我偶然发现这个问题的最新情况是当我尝试使用带有内部 GridView 的 ListView 时。据我了解,GridView 不支持使用宽度百分比声明 GridView 列,仅使用固定的 Width 值。什么是解决方法?一定要这样吗?我真的很想让我的 UI 尽可能灵活。现在,固定宽度让我感到困惑,因为我正在为 50" 2160p 屏幕设计 UI。但是,我正在设计的屏幕要小得多(13" 1080p),因此元素被按比例缩小,我无法真正使用它。这是我正在寻找的示例或理想场景的示例。
当前情景
<ListView ItemsSource="{Binding NotApprovedChanges}" Margin="40 90 40 40" FontSize="26" Name="nonApprovedChangesList">
<ListView.View>
<GridView>
<GridViewColumn HeaderContainerStyle="{StaticResource ListViewStyle}" Header="ID" Width="150" DisplayMemberBinding="{Binding Id}" />
<GridViewColumn HeaderContainerStyle="{StaticResource ListViewStyle}" Header="Requester" Width="200" DisplayMemberBinding="{Binding Requester}" />
<GridViewColumn HeaderContainerStyle="{StaticResource ListViewStyle}" Header="Date" Width="250" DisplayMemberBinding="{Binding Date}" />
</GridView>
</ListView.View>
</ListView>
我在寻找什么
<ListView ItemsSource="{Binding NotApprovedChanges}" Margin="40 90 40 40" FontSize="26" Name="nonApprovedChangesList">
<ListView.View>
<GridView>
<GridViewColumn HeaderContainerStyle="{StaticResource ListViewStyle}" Header="ID" Width="*" DisplayMemberBinding="{Binding Id}" />
<GridViewColumn HeaderContainerStyle="{StaticResource ListViewStyle}" Header="Requester" Width="2*" DisplayMemberBinding="{Binding Requester}" />
<GridViewColumn HeaderContainerStyle="{StaticResource ListViewStyle}" Header="Date" Width="*" DisplayMemberBinding="{Binding Date}" />
</GridView>
</ListView.View>
</ListView>
或者
<ListView ItemsSource="{Binding NotApprovedChanges}" Margin="40 90 40 40" FontSize="26" Name="nonApprovedChangesList">
<ListView.View>
<GridView>
<GridView.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="2* />
<ColumnDefinition Width="*" />
</GridView.ColumnDefinitions>
<GridViewColumn HeaderContainerStyle="{StaticResource ListViewStyle}" Header="ID" GridView.Column="0" DisplayMemberBinding="{Binding Id}" />
<GridViewColumn HeaderContainerStyle="{StaticResource ListViewStyle}" Header="Requester" GridView.Column="1" DisplayMemberBinding="{Binding Requester}" />
<GridViewColumn HeaderContainerStyle="{StaticResource ListViewStyle}" Header="Date" GridView.Column="2" DisplayMemberBinding="{Binding Date}" />
</GridView>
</ListView.View>
</ListView>
解决方案
推荐阅读
- jwt - 用于隐式授权/流的本地 JWT 解决方案
- ruby-on-rails - APIpie 接收整数参数作为字符串
- google-apps-script - 触发函数 onOpen 在 Google 表格中停止工作
- asp.net - 如何在 ASP.net 代码页中删除 GridView 控件中的选定行?
- c# - .Net Core IsAuthenticated false 即使我手动使用 HttpContext.SignInAsync
- python - 创建具有重复天数的倒计时变量
- swift - 看似相同的 if let 块之间的行为不一致
- android - Instabug 的任何修复都会捕获 Flutter 应用程序的空白屏幕和视频(android 构建)
- kotlin - 带有协程的异步 http 调用(使用像 Feign 这样的 http 客户端)
- sql - HSQLDB: INSERT INTO ... (SELECT NULL, * FROM) 导致“列名重复”