2010-11-12 21 views
7

在我的其他(不相关的)question中,@Meleak在整个代码中散布了SnapsToDevicePixels(在他的回答中),我发现它被用来使事情看起来更清晰。所以这个问题,为什么它不能在任何地方使用,因为它会让事情看起来更好?还是有我需要注意的缺点?何时应该/不应该使用它?应UseLayoutRounding&SnapsToDevicePixels总是使用?

回答

2

这样做会导致禁用subpixel rendering,这会提高清晰度,但也会击败WPF的resolution independence。它可以是好的也可以是坏的,取决于你在应用中做什么,以图形方式。

请参阅MSDN上的Pixel Snapping以获取完整说明。

+21

它禁用子像素_positionning_,而不是_rendering_(描边路径将继续使用抗锯齿渲染)。它只是简化了组件边界,因此它们具有整数坐标和大小。它也不会破坏分辨率的独立性,因为舍入是在将设备独立值转换为设备空间之后完成的。 – 2010-11-12 12:42:55

+0

@Nicolas,好吧,当你的所有边界被捕捉到实际的像素值时,使用子像素渲染都很难......你的笔画路径的例子可以工作,但例如,直线和填充不会。另外,由于分辨率独立性是围绕像素网格独立进行的,因此我无法了解在对齐像素网格时如何实现分辨率。即使在坐标系转换之后执行舍入,设备之间的渲染可能会有小的差异。 – 2010-11-12 12:53:22

+7

是的,会有小的差异,但是您的应用程序在96或300 dpi时大致相同。这就是我的意思是_resolution independence_。 – 2010-11-12 13:38:32

相关问题