UWP CanvasControl重绘

时间:2016-11-21 19:55:51

标签: c# uwp-xaml win2d

我有简单的动画,可以绘制曲线动画。 每个OnDraw我都使用:

lines.add(...);
for(int i = 1; i < lines.Count; i++)
    ds.DrawLine(lines[i - 1], lines[i], Colors.Green, 2);`

行数超过10000。 我该如何优化呢?

1 个答案:

答案 0 :(得分:1)

如果您只是在前一行保持不变的情况下每次添加行,请考虑缓存以前的绘图结果。不是将所有行直接绘制到CanvasControl,而是将它们绘制到CanvasRenderTarget中,然后将该rendertarget绘制到CanvasControl上。现在,您只需要每次向rendertarget添加任何新行,将它们绘制在所有先前绘制的重用行的顶部。