再论WPF中的UseLayoutRounding和SnapsToDevicePixels
原文:
再论WPF中的UseLayoutRounding和SnapsToDevicePixels
导致以上问题的原因是:1)UserLayoutRounding为False,导致控件布局相对屏幕若不是整数则不会四舍五入,导致边缘模糊。2) SnapsToDevicePixels默认为false, 为true可以让元素像素级对齐。
具体请看MSDN: http://msdn.microsoft.com/zh-cn/library/system.windows.uielement.uselayoutrounding(v=vs.95).aspx
http://msdn.microsoft.com/zh-cn/library/vstudio/system.windows.uielement.snapstodevicepixels.aspx
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄
版权声明:.net/web/医疗技术的木子纵横的个人分享 https://blog.csdn.net/muzizongheng/article/details/14163227 最近在调试项目中的UI时发现几个诡异问题: 1.Grid容器里的GridSplitter设置粗细一样, 但截屏放大后发现线条不一样粗并且明暗不一致,导致打印出来有问题。 2.自定义控件的边缘在某些窗体中显示模糊。
导致以上问题的原因是:1)UserLayoutRounding为False,导致控件布局相对屏幕若不是整数则不会四舍五入,导致边缘模糊。2) SnapsToDevicePixels默认为false, 为true可以让元素像素级对齐。
UIElement.UseLayoutRounding 属性
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。获取或设置一个值,该值确定对象及其可视化子树的呈现是否应使用将呈现与整像素对齐的舍入行为。
(一般在容器元素上设置, 发生在Measure&Arrange期间)
UIElement.SnapsToDevicePixels 属性
获取或设置一个值,该值决定呈现元素期间是否应使用设备特定的像素设置。这是一个依赖项属性。
(一般在根元素设置, 发生在Render, 不是容器元素)
(DPI, Dot per inch, 96dpi:1 logical inch = 96 pixels, PNG等图片美工可能设置为72dpi)
具体请看MSDN: http://msdn.microsoft.com/zh-cn/library/system.windows.uielement.uselayoutrounding(v=vs.95).aspx
http://msdn.microsoft.com/zh-cn/library/vstudio/system.windows.uielement.snapstodevicepixels.aspx

更多精彩