C#WPF形状旋转锯齿边
我正在使用WPF开发一个软件,当我画一个简单的形状并旋转大约45'时,我会得到锯齿状的边缘。抗锯齿不是一个解决方案,因为我得到模糊的边,在对角线上,它根本不能像我想要的那样工作。UseLayoutRounding和SnapsToDevicePixels没有帮助,因为我认为,它与线条绘制算法有关。我用WinForms尝试了同样的方法,得到了更好的结果,但我想坚持使用WPF,因为我已经在使用它的一些特性 代码如下所示:C#WPF形状旋转锯齿边,c#,wpf,rotation,blurry,C#,Wpf,Rotation,Blurry,我正在使用WPF开发一个软件,当我画一个简单的形状并旋转大约45'时,我会得到锯齿状的边缘。抗锯齿不是一个解决方案,因为我得到模糊的边,在对角线上,它根本不能像我想要的那样工作。UseLayoutRounding和SnapsToDevicePixels没有帮助,因为我认为,它与线条绘制算法有关。我用WinForms尝试了同样的方法,得到了更好的结果,但我想坚持使用WPF,因为我已经在使用它的一些特性 代码如下所示: 创建形状->形状=新多边形() 将形状添加到画布->DrawingLayer.C
WinForms旋转:
带抗锯齿的WPF旋转:
很难在没有看到实际代码/标记的情况下进行评论,但是使用此标记
<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度:
相关版本号:
- 64位Windows 10 Pro 1809 v17763.437
- Visual Studio社区2019 v16.0.1
- .NET Framework v4.7.2
v4.7.3362.0PresentationCore.dll
v4.7.3362.0PresentationFramework.dll
- 如果不看到您的实际代码/标记,很难进行评论,但是有了这个标记
<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度:
相关版本号:
- 64位Windows 10 Pro 1809 v17763.437
- Visual Studio社区2019 v16.0.1
- .NET Framework v4.7.2
v4.7.3362.0PresentationCore.dll
v4.7.3362.0PresentationFramework.dll