Bug:DataGridCell的显示不完整
2024-08-27 12:53:03
最近在使用DataGrid时遇到一个bug, 在客户机器上DataGrid的内容显示不完整, 具体表现为某些列的显示为空。
具体的可视树为:DataGridCell > ContentPresenter > TextBlock。其中:TextBlock的Width为Auto, HorizontalAlignment为Stretch;ContentPresenter的With为Auto,HorizontalAlignment为Left。
用snoop调查的结果是,在显示正常的机器上ContentPresenter的Width为TextBlock的ActualWidth,在显示错误的机器上ContentPresenter的Width为0.很明显,因为ContentPresenter的宽度太小导致文字看不见而不是TextBlock没有显示文字。
解决办法:设置ContentPresenter的HorizontalAlignment为Stretch。
遗留问题:为什么同样的HorizontalAlignment在有些机器上Width会为0,而客户机器上为正常宽度呢?
我猜测是机器性能配置低,数据库的数据获取耗时,导致UI渲染时数据并没有完全获取成功,因此DataGridCell刚开始的Width即为0, 而当数据获取成功后TextBlock的渲染正常,而此时的CellTemplate内容更新并没有导致Cell的ContentPresenter宽度更新。
最新文章
- [LeetCode] Reverse Linked List
- Android开发中上线后修改应用名称的若干问题
- data.table包
- [读书笔记]C#学习笔记四: C#2.0泛型 可控类型 匿名方法和迭代器
- C#用正则表达式 获取标签的属性或值
- [转载]MongoDB优化的几点原则
- 数组操作- reverse sort each 操作
- HDU4681 String(dp)
- Gradle 1.12 翻译——第十六章. 使用文件
- winform无边框窗口拖动
- laravel中token的使用方式
- zoj1002 Fire Net
- CentOS7使用dnf安装mysql
- MySQL学习笔记_6_SQL语言的设计与编写(下)
- viewport定义,弹性布局,响应式布局及LESS和SASS框架应用
- python slenium 中CSS定位
- 正交表和TCG的使用
- 使用MyEclipse开发Java EE应用:EJB项目开发初探(上)
- win10系统安装docker注意事项
- .Net程序员玩转Android系列之一~Java快速入门