我正在使用WPF开发软件,当我绘制一个简单的形状并将其旋转大约45英尺时,会出现锯齿状的边缘。抗锯齿不是解决方案,因为边缘模糊,对角线根本无法按我的意愿工作。 UseLayoutRounding和SnapsToDevicePixels没有帮助,因为我认为它与线条绘制算法有关。我在WinForms上尝试了相同的方法,但得到了更好的结果,但是我想坚持使用WPF,因为我已经在使用它的某些功能。
代码看起来像这样:
WPF轮播:
WinForms旋转:
使用抗锯齿的WPF旋转:
答案 0 :(得分:0)
如果没有看到您的实际代码/标记就很难发表评论,但是有了这个标记...
<Window x:Class="StackOverflow.Question54926730"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="StackOverflow 54926730" SizeToContent="WidthAndHeight">
<Canvas Height="400" Width="400">
<Polygon Canvas.Left="100" Canvas.Top="100" Stroke="Black" StrokeThickness="1">
<Polygon.Points>
<Point X="0" Y="0" />
<Point X="200" Y="0" />
<Point X="200" Y="200" />
<Point X="0" Y="200" />
</Polygon.Points>
<Polygon.RenderTransform>
<RotateTransform Angle="45" CenterX="100" CenterY="100" />
</Polygon.RenderTransform>
</Polygon>
</Canvas>
</Window>
...结果对我来说很好...
我注意到您说您正在“绕着” 45度旋转,并且再次看到任何代码都不清楚(44.95度还是40度?)是什么意思,但是在这两个角度都看起来不错。这是一个不太圆的41.3579度角:
只有在90度±10的倍数上,我才开始看到明显的阶梯效应。这是9度:
相关版本号:
PresentationCore.dll
v4.7.3362.0 PresentationFramework.dll
v4.7.3362.0