应该使用UseLayoutRounding和SnapsToDevicePixels吗?

Jie*_*eng 8 wpf

在我的另一个(无关的)问题中,@ Meleak SnapsToDevicePixels散布在整个代码中(在他的回答中),我发现它用于使事情看起来更清晰.所以问题是,为什么它不会在任何地方使用,因为它会使事情看起来更好?或者我需要注意哪些缺点?什么时候应该/不应该使用它?

Fré*_*idi 2

这样做会禁用子像素渲染,这会提高清晰度,但也会破坏 WPF 的分辨率独立性。它可能是一件好事,也可能是一件坏事,具体取决于您在应用程序中所做的图形方面的操作。

有关完整说明,请参阅MSDN 上的像素捕捉。

  • 它禁用子像素_positionning_,而不是_rendering_(描边路径将继续使用抗锯齿进行渲染)。它只是将组件边界舍入,以便它们具有整数坐标和大小。它也不会破坏分辨率独立性,因为舍入是在将设备独立值转换为设备空间之后完成的。 (24认同)
  • 是的,会有细微的差别,但您的应用程序在 96 或 300 dpi 下看起来大致相同。这就是我所说的_分辨率独立_的意思。 (7认同)