WPF/Metro 风格:使 ListView 只显示完整的项目

2023-12-10

在我的 Metro 应用程序中,我有一个包含一定数量项目(例如 25 个)的数据源。我有一个显示这些项目的 ListView。我的问题是 ListView 的大小允许它显示 6.5 个项目,因此它显示的最后一个项目被切成两半。如果分辨率改变,它可能会显示 4 个项目,或 8.2 个项目,或其他。我想要的是 ListView 准确显示适合控件高度的项目数量,而不是剪切最后一个项目。

现在,我看到两种可能的半解决方案,其中没有一个是最佳的:

  1. 将 ListView 的高度设置为项目大小的倍数的固定高度。这不会随着分辨率的变化而变化。

  2. 限制数据源中的项目数。这也无法扩展。

所以我的问题是,如何让 ListView 只显示完整的项目(所有边缘都在视口/列表视图内的项目),并隐藏其余部分?


ListView继承自ItemsControl, 因此,一种更优化的解决方案包括在 ItemsPanel 中注入自定义面板(通过自定义剪切显示覆盖测量)

像这样的东西(抱歉,我没有尝试编译):

protected override Size MeasureOverride(Size constraint)
{
 if (this.VisualChildrenCount <= 0)
  return base.MeasureOverride(constraint);
 var size = ne Size(constraint.Width,0);
 for(int i = 0; i < this.visualChildrenCount; i++)
 {
  child.Measure(size);
  if(size.height + child.desiredSize > constraint.height)
   break;
  size.Height += child.DesiredSize;
 }
 return size;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF/Metro 风格:使 ListView 只显示完整的项目 的相关文章

  • NullPointerException 自定义列表视图适配器

    你好 stackoverflow 社区 我在扩展 BaseAdapter 的自定义适配器类的 getView 方法中得到了一个 NPE 我希望你可以帮助我 这是我的 getView 方法 Override public View getVi
  • 获取ListView可见项

    我有一个ListView其中可能包含很多项目 所以它是virtualized和回收物品 它不使用排序 我需要刷新一些值显示 但是当项目太多时 更新所有内容太慢 所以我想只刷新可见项目 我怎样才能获得当前显示的所有项目的列表 我试图调查Lis
  • 具有多个 Item 布局的 ListView 适配器

    我正在考虑向我的 Android 应用程序添加一个带有缩略图的列表视图 左边是缩略图 右边是文字 有没有办法用单独的 xml 文件填充列表视图 例如 我可以为奥地利 英国 美国等提供单独的 xml 并将它们添加到列表视图中吗 我问的原因是
  • WPF 进度条动画速度

    我注意到 WPF 进度栏和 WinForms 进度栏完全填满所需的时间存在差异 完全填充 就像在 Form 和 WPF 中将值设置为 100 一样 我们可以注意到 WinForms 平滑地填充栏 而 WPF 立即填充它 我想知道是否有一个属
  • 正确设置 DataGridCell 样式

    这是我之前的问题之后的一个问题 你可以在那里找到它 https stackoverflow com questions 7092145 styling a textblock autogenerated in a contentpresen
  • 绑定到 Singleton 类 Observable 集合成员

    我似乎无法弄清楚这一点 我在这里发现了一些类似的问题 但要么我无法找出我的方法的正确方向 要么我正在做一些完全错误的事情 我的应用程序有一个单例类记录器 它保存程序中每个类的日志消息 public class Logger private
  • 绑定到父 ListViewItem 的 IsSelected 属性

    我正在尝试绑定一个的 Visibility 属性TextBlockListView 的 ItemTemplate 中保存的 TextBlock 父 ListViewItem 的 IsSelected 属性 使用此标记 TextBlock 始
  • 具有 ItemsControl 嵌入网格的 SharedGridSize 组

    我正在尝试使用以下方法将多个网格嵌入到另一个网格中ItemsControl并使所有子网格共享相同的行高
  • 命令绑定到 ViewModel,并在 View 中使用确认逻辑

    寻找最优雅的解决方案将按钮命令绑定到 ViewModel ICommand 属性 同时允许在视图中进行确认 我想做的事 仅允许用户在应该时单击按钮 单击按钮时 要求确认 如果确认 则在 ViewModel 中进行工作 否则取消 不要破坏MV
  • WPF 重复按钮 MouseUp

    有没有办法让重复按钮上的 MouseUpevent 在不再按下按钮时触发 我试图使用 MouseMove 事件来跟踪按下按钮时鼠标的位置 但 MouseDown 和 MouseUp 都不会触发鼠标左键的事件 关于可以做什么的任何想法或建议
  • 如何使用listview.GetItemAtPosition(e.Position)获取用户点击的ListView项目的数据?

    在 Xamarin Android 应用程序中 我有一个之前填充的 ListView 在正确触发的 listview ItemClick 事件处理程序中 我想检索单击的 listview item 视图的文本 以便在 AlertDialog
  • WPF - 如何使用模板创建图像按钮

    我正在尝试创建一个包含 3 个图像的按钮 一个普通图像 一个按下图像和一个禁用图像 我将使用它们来创建向上 向下箭头按钮 我相信正确的方法是从Button并使用Template并设置触发器来更改图像 我有 3 个依赖属性 每个图像一个 图像
  • UserControl 不在 HitTestResult 中吗?

    我定义了一个用户控件
  • 区分 Wpf 应用程序中的 x:Name 和 Name [重复]

    这个问题在这里已经有答案了 我是 Wpf 编程的初学者 我需要知道两者之间的区别Name and x Name
  • WPF 中的自动展开树视图

    有没有办法在 WPF 中自动展开树视图中的所有节点 我搜索了 甚至没有在 treeview 属性中找到展开功能 Thanks 您可以设置 ItemContainerStyle 并使用 IsExpanded 属性
  • 如何在代码中设置 DataGridTextColumn 的绑定?

    我正在使用 CodePlex 的工具包 DataGrid 我正在代码中生成列 我怎样才能设置相当于 绑定名字 在代码中 或者 我怎样才能设置值 这就是我需要做的 不一定要绑定它 我只想要数据网格单元格中模型属性的值 DataGridText
  • React Native 中的 ListView 网格

    我正在 React Native 中构建一个简单的应用程序 它从远程 JSON 源获取列表并将其显示在屏幕上 到目前为止 使用优秀的example http www raywenderlich com 99473 introducing r
  • 无法覆盖由 TargetType 在单个特定控件上设置的全局 WPF 样式

    我有一个应用于所有文本框的样式 在资源字典中定义
  • 数据网格中的主键始终为零

    我们正在VS2012中使用实体框架 DB First 开发WPF应用程序 我们在数据网格视图中遇到问题 我们从数据源中拖动了一个数据网格 这创建了一个绑定到该特定表的数据网格 该表有两列 一列是 TransporterID 它是 PK 是自
  • 在 WPF 中创建复合位图图像

    我有三个位图图像 我想将它们拼接在一起以创建合成图像 要拼接在一起的三个图像按以下方式对齐 这些图像的类型为 System Windows Media Imaging BitmapImage 我看过以下内容solution https st

随机推荐

  • python networkx - 通过着色来标记边缘以进行图形绘制

    我正在使用 networkx 来研究图论实现 我想知道是否有一种方法可以标记给定图中的某些边 例如 假设我有一个图 G 并且我找到了从节点 x 到节点 y 的最短路径 我如何标记该路径 以便在绘制图时它将以不同的颜色绘制 标记边缘可以通过设
  • 关闭 BufferedReader 和 System.in

    Reader rdr new InputStreamReader System in BufferedReader br new BufferedReader rdr String s s br readLine br close Scan
  • 选择可变参数模板最后一个参数的有效方法

    我知道如何选择可变参数模板的第一个参数 template lt class Args gt struct select first template lt class A class Args gt struct select first
  • Python 中奇怪的前导字符 utf-8/utf-16 编码

    我写了一个简化版本来演示这个问题 我正在以 utf 8 和 UTF 16 格式对特殊字符进行编码 使用 utf 8 编码没有问题 当我使用 UTF 16 编码时 我得到一些奇怪的前导字符 我尝试删除所有尾随和前导字符 但错误仍然存 在 代码
  • jquery 每个循环内的 Ajax 调用

    这是一个我必须通过 ajax 调用写入 xml 文件的函数 第一次进行 ajax 调用时 代码可以正常工作 在第二个each 循环中 根本不进行ajax 调用 我不知道为什么 我将 asyn 指定为 false 但这没有帮助 无论如何 这似
  • Q-Learning 值太高

    我最近尝试在 Golang 中实现基本的 Q Learning 算法 请注意 我对强化学习和人工智能总体来说是新手 所以这个错误很可能是我的 以下是我如何在 m n k 游戏环境中实施解决方案 在每个给定的时间t 代理持有最后的状态动作 s
  • MVC 3 - 模型绑定表中的列表,每个记录是一列而不是行

    我可以找到有关如何在 MVC 3 中模型绑定项目列表的各种文章 甚至可以在表中进行模型绑定 但在每个示例中 行代表列表中的一条记录 我的观点的要求是每条记录必须是一列 我无法从以下文章中获得任何技巧 http blog stevensand
  • 根据列表中的条件合并列表项

    我有一个项目清单 例如 a IP 123 84 apple mercury IP 543 65 killer parser goat IP 549 54 pineapple django python 我想根据条件合并列表项 即合并所有项目
  • iOS:如何关闭弹出窗口[重复]

    这个问题在这里已经有答案了 可能的重复 如何关闭故事板弹出窗口 我有一个 iPad 故事板 将一个视图中的栏按钮项按住 Control 键拖动到另一个视图 并选择弹出框样式 当我按下按钮时 新的弹出窗口视图将显示在弹出窗口中 但我有两个问题
  • 使用 Java 中的 ImageIO 编写 TIFF 的平铺输出

    我拥有的是大量的帧 需要将它们放在一起形成更大的图像 如马赛克 所需的图像位置是已知的 图像数量非常多 因此将它们全部加载到内存中是不切实际的 根据这里的一些其他答案 我能够覆盖 RenderedImage 中的方法 特别是getData
  • 厨师食谱中使用了哪些 ruby​​ 功能?

    我刚开始使用 Chef 对 ruby 不太了解 我无法理解食谱中使用的语言语法 比如说 我在食谱中的recipes default rb 中创建一个目录 如下所示 directory home test mydir do owner tes
  • 确定 C++ 应用程序是否作为 UWP 应用程序运行并具有旧版支持

    我的第一个想法是使用GetPackageFamilyName 并寻找ERROR SUCCESS vs APPMODEL ERROR NO PACKAGE 但是 我需要支持 Windows 7 这使得GetPackageFamilyName
  • jQuery validate - 如何防止自动提交?

    我热衷于使用 jQuery 验证器插件来验证我的代码 但我想禁用自动提交表单 我宁愿自己使用 jQuery 发送它 post method 事实上 考虑到我的按钮不是类型 我不太确定为什么要提交表单submit但只是
  • java进程间通信

    是否可以使用在命令行中运行java类来运行正在运行的swing中的某个类或函数 例如 当java Test asd将setText一个正在运行的swing Jlabel设置为asd 这两个程序在不同的进程中运行 您需要在进程之间创建一个接口
  • 在正则表达式中获取非法字符范围:java

    我有一个简单的正则表达式模式来验证名称 但是当我运行它时 我收到非法字符范围错误 我认为通过转义 s 它将允许一个空格 但编译器仍然抱怨 public boolean verifyName String name String namePa
  • PHP 支持 MVP 模式吗?

    有很多使用 ASP NET 解释 MVP 模式的示例 但没有找到任何使用 PHP 的示例 我是 PHP 程序员 想知道在哪里可以获得 MVP 模式 PHP 示例 简短的回答是 是的 PHP 可以 Note its not exactly M
  • 如何在 JavaScript 中换行?

    请告诉我如何在 JavaScript 中换行
  • 连接两个 Pandas DataFrame 同时保持索引顺序

    基本问题 我试图连接两个 DataFrame 生成的 DataFrame 按原始两个的顺序保留索引 例如 df pd DataFrame Houses 10 20 30 40 50 Cities 3 4 7 6 1 index 1 2 4
  • 升级到rails 3.1.0后ActionView::Template::Error(参数数量错误(1代表0))与atom_feed

    我刚刚将 Rails 应用程序从 3 0 7 版本升级到候选版本 3 1 0 我的 Atom feed 构建器中出现了一个奇怪的错误 ActionView Template Error wrong number of arguments 1
  • WPF/Metro 风格:使 ListView 只显示完整的项目

    在我的 Metro 应用程序中 我有一个包含一定数量项目 例如 25 个 的数据源 我有一个显示这些项目的 ListView 我的问题是 ListView 的大小允许它显示 6 5 个项目 因此它显示的最后一个项目被切成两半 如果分辨率改变