【发布时间】:2012-05-01 17:21:05
【问题描述】:
我在使用效果时遇到了 WPF 中的渲染问题(特别是 DropShadowEffect)。这就是我的 UI 应该是这样的:
但是当我开始调整窗口大小时,它会在某些点出现故障并转向:
您可以看到文本被扭曲,并且在“启动服务器”按钮的右侧有一条暗线。如果我删除效果,问题就会消失。这只是 WPF 中的一个错误,还是有办法修复它?
【问题讨论】:
我在使用效果时遇到了 WPF 中的渲染问题(特别是 DropShadowEffect)。这就是我的 UI 应该是这样的:
但是当我开始调整窗口大小时,它会在某些点出现故障并转向:
您可以看到文本被扭曲,并且在“启动服务器”按钮的右侧有一条暗线。如果我删除效果,问题就会消失。这只是 WPF 中的一个错误,还是有办法修复它?
【问题讨论】:
正如 Halley 所说,您可能会受到亚像素定位的影响。如果您针对 .Net 4 FrameWork 编译您的应用程序,您可以设置窗口的 UseLayoutRounding 属性来关闭此行为。
UseLayoutRounding=True
如果这不起作用,请尝试软件渲染以检查 DX 是否给您带来麻烦(尽管我打赌您不必去那里)。
RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly;
【讨论】:
我猜你的启动服务器按钮和搜索栏有中心对齐,所以当你调整整个窗口的大小时,控件可能会在屏幕上从半像素绘制到另一个半像素。这就是控件看起来模糊的原因。
试试SnapToDevicePixels 看看它是否有帮助。将两个控件的属性设置为 true。它应该确保所有边缘都绘制在物理设备像素上。
【讨论】: