Mik*_*e B 56 .net wpf snapstodevicepixels
任何人都可以建议何时SnapsToDevicePixels在WPF 4.0中使用?
它是否应该仅在有问题的情况下偶尔使用,在整个应用程序中,只在某些控件或什么?
cpl*_*tts 84
斯宾塞和马丁关于何时对齐像素的好答案.
至于如何:我还要指出,应该在WPF 4.0中尝试使用属性UseLayoutRounding而不是SnapsToDevicePixels.
UseLayoutRounding使你正在做的与Silverlight兼容(SnapsToDevicePixels在Silverlight中不可用)......并且微软也鼓励在其文档中使用UseLayoutRoundingover .SnapsToDevicePixels
两者有什么区别?好吧,一个很大的区别是UseLayoutRounding在布局阶段SnapsToDevicePixels发生,而在渲染阶段发生.这让我推测这UseLayoutRounding可能是一种更高效的方式(尽管如此,我还没有证实).
话虽如此,仍然有理由使用SnapsToDevicePixels.事实上,MSDN文档指向一个.我将添加另一个:只有SnapsToDevicePixels你可以使用准则进行精确控制.
以下是关于此问题的一些资源(即像素捕捉和图像,文本和视觉效果的清晰度):
嘿.我知道我的答案比你要求的要多一点......但是这个概念(即分辨率独立性及其带来的问题以及如何克服它们)在使用WPF时经常会让人感到沮丧.至少,我想向您指出新的WPF 4.0属性UseLayoutRounding.
UPDATE
我只需要添加,因为我已经看到了这个一遍又一遍......有时候SnapsToDevicePixels,当工作UseLayoutRounding没有.我希望我能指出为什么会这样,但绝对先尝试使用UseLayoutRounding,如果这不起作用,请不要犹豫SnapsToDevicePixels.
这条线是如此尖锐,它可以削减你!
它应该用在像素放置有意义的控件或区域.与绘图应用程序的画布相关的控件就是一个例子.你见过碎片驱动器的地图吗?这可能是另一个例子.
我能想到的一个例外是当你使用某种分隔线时.虽然大多数人都希望如果这个设置关闭,边界线会很稳固,但它们看起来会模糊不清并且会让人分心
基本上如果模糊边缘=坏则将其关闭.
一种情况是您正在显示图像或视频.如果你没有捕捉到设备像素(即视频屏幕的像素),那么会使用一些算法(插值,消除锯齿)将图像的像素"放在"屏幕的像素之间,显示的内容不会显示和原始图像一样好.图像会失去一些清晰度.
| 归档时间: |
|
| 查看次数: |
30074 次 |
| 最近记录: |