C# 绘制不模糊的路径

C# 绘制不模糊的路径,c#,uwp,C#,Uwp,我有一条路,如果没有上下文,可能没有多大意义,但我需要这样 <Path StrokeThickness="2" Stroke="Blue" > <Path.Data> <PathGeometry> <PathFigure StartPoint="-10000,20"> <BezierSegment Point1="100,100"

我有一条路,如果没有上下文,可能没有多大意义,但我需要这样

<Path StrokeThickness="2" Stroke="Blue" >
        <Path.Data>
            <PathGeometry>
                <PathFigure StartPoint="-10000,20">
                    <BezierSegment Point1="100,100" 
                                   Point2="120,120" 
                                   Point3="350, 350" />
                    <BezierSegment Point1="400,400" 
                                   Point2="450, 450" 
                                   Point3="200, 600" />
                </PathFigure>
            </PathGeometry>
        </Path.Data>
    </Path>

我注意到,当我有一个长路径时,默认情况下UWP会优化绘制,我的路径会被像素化

我不想要这种行为,有没有办法禁用它? 我真的需要这样的路径,我不能改变它的长度来获得更好的质量

在WPF中,我得到了我需要的:


在XAML中出现模糊线条的原因是因为您使用了此StartPoint=“-10000,20”。我们的WinRT在渲染大型多段线时遇到问题,当多段线的任意两点相距超过2048像素时,它会缩放多段线,而不是正常渲染

以下解释引自Brendan Clark-MSFT的文章:

在WinRT中,每个形状的大小受运行应用程序的硬件的限制。最低公分母为2048 x 2048。这足够大了,只要你把UI的每个组件保持在与典型屏幕大致相同的规模上,所有东西都会看起来很清晰。一旦您尝试绘制比屏幕大得多的图形,图形将被钳制到硬件支持的最大尺寸,并将从该点放大到您要求的尺寸。由于形状被钳制为比您要求的分辨率更低的分辨率,因此放大它会使其看起来模糊

因此,如果您将StartPoint=“-10000,20”更改为StartPoint=“100,20”,您将看到它工作正常


根据您的描述,我知道您不想更改路径数据,解决此问题的唯一方法是根据查看区域的大小手动剪裁多段线,有关详细信息,请检查。

为什么请向下投票,为什么向下投票,为什么投票关闭,脱离主题?我不明白为什么我不认为你可以做些什么,因为这是框架行为。这里有什么帮助吗?我对windows窗体也有同样的问题,但很明显,这些代码对您没有帮助,希望链接的问题会有帮助@JonathanCoffey在Uwp中找不到任何选项