【发布时间】:2015-06-19 00:20:05
【问题描述】:
我在一个成熟的应用程序中遇到了这种现象,我在 WPF 中的 Tahoma 字体比 Arial 快得多。
我构建了一个测试应用程序来验证我所看到的。
测试应用程序有一个带有多个 TabItem 的 TabControl。每个选项卡都包含一个 DataGrid 控件并填充有 18 列。网格/列都数据绑定到同一个视图模型。选项卡之间的唯一区别是使用的字体。有 1000 行。 TextBlock 的大小固定为相同的大小。
当我尝试拖动垂直滚动条手柄并垂直滚动时,Tahoma 和 Arial 选项卡之间的性能差异很大。您知道滚动条手柄在绘图赶上时如何落后于鼠标所在的位置,并且每次绘制完屏幕时,它都会立即意识到您已经滚动了整个屏幕或更远,所以它完全必须重新绘制?对于 Tahoma,这种情况发生得非常快,“滴答滴答滴答”。无论如何,它都不是平滑滚动,但它是可用的。使用 Arial,它更像是“滴答…………滴答…………滴答…………滴答”。非常明显的区别。我会说每个“tick”需要大约 2-3 倍的时间。
我使用过 TextOptions.TextFormattingMode、TextOptions.TextRenderingMode 和 Typography.NumeralAlignment,但性能差异仍然存在。
任何想法为什么会发生这种情况,更重要的是,是否有任何相关设置可以缓解这种差异?
【问题讨论】:
-
请发布重现此问题所需的代码。否则您的问题可能会被关闭。
-
这样内联发布的代码量很大。无论如何,我不清楚这如何增加问题?请解释一下?
-
我们需要确认问题确实是您所说的,而不是像您破坏 UI 虚拟化这样的其他问题。
-
如果我要破坏虚拟化,它会在两个方面都被破坏,而不仅仅是一个。从字面上看,only 的区别在于两个选项卡之间的字体。
标签: wpf fonts wpfdatagrid