为 WPF 形状启用抗锯齿
Posted
技术标签:
【中文标题】为 WPF 形状启用抗锯齿【英文标题】:Enable Anti-Aliasing for WPF shapes 【发布时间】:2012-12-23 00:24:26 【问题描述】:似乎很多人都试图在WPF
中关闭anti-aliasing
,但我似乎遇到了相反的问题。我在WPF
中绘制形状,边缘都是锯齿且丑陋的。最糟糕的是,当我使用 ScaleTransform 缩小以使形状的高/宽小于一个像素时,它会完全消失。我怎样才能使它们光滑漂亮?
目前,我正在绘制Rectangles
和Ellipses
并将它们放置在网格和StackPanels
中。
经过大量谷歌搜索,我发现了如何通过在我的窗口构造函数中使用以下行将我的图像获取到anti-alias
:RenderOptions.SetBitmapScalingMode(this, BitmapScalingMode.Fant);
但是,这只会影响我的图像,而不影响我的形状。
【问题讨论】:
【参考方案1】:我有同样的问题。将 SnapsToDevicePixels
设置为 false 对我有用:
<Ellipse SnapsToDevicePixels="False" />
【讨论】:
【参考方案2】:您可以像设置BitmapScalingMode
一样设置EdgeMode
RenderOptions.SetEdgeMode(this, EdgeMode.Unspecified);
但Anti-Aliasing
已设置为默认值,因此您无需更改它,但请尝试一下 :)
在您的窗口上设置SnapsToDevicePixels = true;
可能有助于形状。
【讨论】:
感谢您的提示,但他们没有帮助:(以上是关于为 WPF 形状启用抗锯齿的主要内容,如果未能解决你的问题,请参考以下文章