Wpf 路径几何渲染

Wpf 路径几何渲染,wpf,performance,profiling,rendering,hardware-acceleration,Wpf,Performance,Profiling,Rendering,Hardware Acceleration,我有一个包含单个多段线的PathGeometry,并以固定的间隔向该线添加一个新点(以绘制波形)。使用穿孔器工具时,我可以看到每次向直线添加点时,WPF都会将整个PathGeometry标记为“脏”,从而导致重新渲染整个形状 我希望它只会重新绘制单个像素。有没有办法做到这一点?简单的答案是没有 WPF在更改时弄脏整个几何体是正确的,因为它考虑了当前路径值也发生更改的情况 如果将其分解,可以使用行列表而不是路径。。但是, 这意味着您必须在每次用户调整打印区域大小时更新线条值,以保持比例 因此,为了

我有一个包含单个多段线的PathGeometry,并以固定的间隔向该线添加一个新点(以绘制波形)。使用穿孔器工具时,我可以看到每次向直线添加点时,WPF都会将整个PathGeometry标记为“脏”,从而导致重新渲染整个形状


我希望它只会重新绘制单个像素。有没有办法做到这一点?

简单的答案是没有

WPF在更改时弄脏整个几何体是正确的,因为它考虑了当前路径值也发生更改的情况

如果将其分解,可以使用行列表而不是路径。。但是,
这意味着您必须在每次用户调整打印区域大小时更新线条值,以保持比例

因此,为了处理这个问题,您可能会编写一些代码,上面写着:
“如果用户调整了大小-弄脏所有行”

另一个问题是当您添加另一行时,
您可能希望压缩所有线以适合打印区域,
因此,您可能会编写一些代码,上面写着:
“如果添加新行-弄脏所有行”

这使得路径几何体行为与迷你引擎具有1:1的相似性

如果您不需要或不想在新行中处理大小调整或重新安装,请添加,

只需使用一个行列表。

您是否确实遇到了性能问题?多段线中有多少个点?@Clemens我只是在做一项可行性研究,以决定此绘图仪应用程序(Winforms/D3D/WPF)使用哪种技术,因此我还没有遇到性能问题,因为我只使用一条线进行测试,但最终的应用程序将有更多的线。事实上,它必须重新绘制如此大的屏幕部分,而不是单个像素,这让我很担心。那么,您不应该停止在Path/PathGeometry上,还应该考虑低级别渲染。看看这篇文章。此外,通过a进行渲染可能值得一看。尽管如此,您还应该研究一个真实的示例。使用多行进行渲染并评估实际性能。WPF渲染得益于硬件加速,这可能使其性能比WinForms高得多,即使它经常需要重新绘制整个视觉层。你也可以看看。