我有一个生成纹理的 GPU 渲染引擎。这些纹理被复制到 WriteableBitmap 中。此位图用作普通 Windows Presentation Foundation 视图中的 ImageSource。
现在,我将我的 dpi 设置为 120,也就是说,我在 Windows 控制面板中启用了 125% 字体大小设置。
自从那次改变之后,WritableBitmap 看起来真的很难看。它不再是像素完美的,看起来像抗锯齿严重(可能是因为 Wpf 以某种方式拉伸它)。
我玩了以下设置:
- 这个答案描述了如何从 Wpf 获取 Dpi,并且我相应地调整了 WritableBitmap dpi 和 Width/Height 值。
- 在包含图像的 XAML 中禁用 UseLayoutRounding 并启用 SnapToDevicePixels。
但我不能让它看起来很好。我不确定我是否理解我必须设置哪些值才能获得像素完美的显示。似乎有多个相互依赖的设置。
一个好的答案将解释如何组合设置哪些设置才能按预期工作。