为 WPF 形状启用抗锯齿

Posted

技术标签:

【中文标题】为 WPF 形状启用抗锯齿【英文标题】:Enable Anti-Aliasing for WPF shapes 【发布时间】:2012-12-23 00:24:26 【问题描述】:

似乎很多人都试图在WPF 中关闭anti-aliasing,但我似乎遇到了相反的问题。我在WPF 中绘制形状,边缘都是锯齿且丑陋的。最糟糕的是,当我使用 ScaleTransform 缩小以使形状的高/宽小于一个像素时,它会完全消失。我怎样才能使它们光滑漂亮?

目前,我正在绘制RectanglesEllipses 并将它们放置在网格和StackPanels 中。

经过大量谷歌搜索,我发现了如何通过在我的窗口构造函数中使用以下行将我的图像获取到anti-aliasRenderOptions.SetBitmapScalingMode(this, BitmapScalingMode.Fant);

但是,这只会影响我的图像,而不影响我的形状。

【问题讨论】:

【参考方案1】:

我有同样的问题。将 SnapsToDevicePixels 设置为 false 对我有用:

<Ellipse SnapsToDevicePixels="False" />

【讨论】:

【参考方案2】:

您可以像设置BitmapScalingMode一样设置EdgeMode

 RenderOptions.SetEdgeMode(this, EdgeMode.Unspecified);

Anti-Aliasing 已设置为默认值,因此您无需更改它,但请尝试一下 :)

在您的窗口上设置SnapsToDevicePixels = true; 可能有助于形状。

【讨论】:

感谢您的提示,但他们没有帮助:(

以上是关于为 WPF 形状启用抗锯齿的主要内容,如果未能解决你的问题,请参考以下文章

WPF 图片抗锯齿,尤其是小图片更为严重

在 GLFW 窗口中启用多重采样不会提高抗锯齿的质量

CGContextClip 抗锯齿问题

如何在 Windows 中启用字体抗锯齿 [关闭]

OpenGL 抗锯齿不起作用

如何在 pyqtgraph ImageView 中启用抗锯齿功能?