为WPF形状启用抗锯齿功能

时间:2013-01-09 01:39:35

标签: c# wpf drawing antialiasing

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

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

经过大量的Google搜索后,我通过在窗口的构造函数中使用以下行找到了如何将图像传送到anti-aliasRenderOptions.SetBitmapScalingMode(this, BitmapScalingMode.Fant);

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

2 个答案:

答案 0 :(得分:0)

您可以像设置EdgeMode

一样设置BitmapScalingMode
 RenderOptions.SetEdgeMode(this, EdgeMode.Unspecified);

但是Anti-Aliasing设置为默认设置,因此您不需要更改它,但请试一试:)

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

答案 1 :(得分:0)

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

<Ellipse SnapsToDevicePixels="False" />