[英]C# WPF shape rotation jagged edges
我正在使用WPF開發軟件,當我繪制一個簡單的形狀並將其旋轉大約45英尺時,會出現鋸齒狀的邊緣。 抗鋸齒不是解決方案,因為邊緣模糊,對角線根本無法按我的意願工作。 UseLayoutRounding和SnapsToDevicePixels沒有幫助,因為我認為它與線條繪制算法有關。 我在WinForms上嘗試了相同的方法,但得到了更好的結果,但是我想堅持使用WPF,因為我已經在使用它的某些功能。
代碼看起來像這樣:
WPF輪播:
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度:
相關版本號:
PresentationCore.dll
v4.7.3362.0 PresentationFramework.dll
v4.7.3362.0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.