我有一个包含一条折线的 PathGeometry,并以固定的间隔向该线添加一个新点(以绘制波形)。使用 Perforator 工具时,我可以看到每次向线条添加一个点时,WPF 都会将整个 PathGeometry 标记为“脏”,从而导致重新渲染整个形状。
我希望它只会重绘单个像素。有没有办法做到这一点?
我有一个包含一条折线的 PathGeometry,并以固定的间隔向该线添加一个新点(以绘制波形)。使用 Perforator 工具时,我可以看到每次向线条添加一个点时,WPF 都会将整个 PathGeometry 标记为“脏”,从而导致重新渲染整个形状。
我希望它只会重绘单个像素。有没有办法做到这一点?
最简洁的答案是不..
WPF 在更改时弄脏整个几何图形是正确的,因为它考虑了当前路径值也发生更改的情况。
如果将其分解,则可以使用行列表而不是路径。但是,
这意味着每次用户调整绘图区域的大小以保持比例时,您都必须更新行值。
所以要处理这个你可能会写一些代码说:
“如果用户调整大小 - 脏所有行”..
另一个问题是当您添加另一条线时,
您可能想要挤压所有线以适合您的绘图区域,
因此您可能会编写一些代码说:
“如果新线添加 - 脏所有线”..
现在,它使路径几何行为与您的迷你引擎具有 1 比 1 的相似性。
如果您不需要或不想在新行中处理调整大小或改装,
只需使用行列表即可。