C# GraphicsPath的高效投影

C# GraphicsPath的高效投影,c#,winforms,rendering,gdi+,C#,Winforms,Rendering,Gdi+,我正在Windows窗体中绘制一些带有阴影的图形路径 我的做法基本上是: var matrix = new Matrix(); matrix.Translate(3, 3); graphicsPath.Transform(matrix); g.DrawPath(shadowPen, graphicsPath); graphicsPath.Transform(new Matrix()); g.DrawPath(normalPen, graphicsPath); 但是,绘制路径似乎效率很

我正在Windows窗体中绘制一些带有阴影的图形路径

我的做法基本上是:

var matrix = new Matrix();  
matrix.Translate(3, 3);
graphicsPath.Transform(matrix);

g.DrawPath(shadowPen, graphicsPath);

graphicsPath.Transform(new Matrix());

g.DrawPath(normalPen, graphicsPath);
但是,绘制路径似乎效率很低,并且会对应用程序的性能产生一些影响。有没有更有效的方法来达到同样的效果


我是否可以用普通笔缓存绘图路径的结果,然后用不同的画笔和变换重新绘制相同的内容?

有没有更有效的方法来达到相同的效果?
-我将被踩死并被钉死在十字架上,永远禁止Stackoverflow发表评论,但我必须说,winforms在处理图形时在设计上是低效的。如果您需要先进的图形密集型计算机,您应该真正考虑移动到当前(10岁以下)、硬件加速、基于向量、更可扩展、性能更高的基于XAML的技术。然而,我不能仅仅因为绘制阴影的性能问题,就用3年的开发时间来转移到一个现代化的平台上……那就不要在你的应用程序中添加阴影。winforms不支持任何好看的东西,例如
DropShadow
s、
Transparency
LinearGradientBrush
es,甚至
动画
s。如果将winforms中的默认丑陋控件移动1厘米,则会出现性能问题。@HighCore:抱歉,这不是很有建设性。如果没有办法提高效率,就指出这一点。我一直在使用winforms,我只是想充分利用它。我唯一能想到的就是在你的winforms应用程序中放置带有WPF内容的
ElementHost
s,无论你在哪里需要一些好看的东西。它的性能不如本机WPF,但肯定比在winforms中尝试同样的操作要快。