none
在FrameworkElement中添加了大量的DrawingVisual,一起更新这些DrawingVisual时,性能差 RRS feed

  • 问题

  • 将FrameworkElement作为宿主,将大量DrawingVisual(大概超过3000个时)添加到VisualCollection中,自定义每个DrawingVisual的绘制:

    public void Update()

    {

    DrawingContext dc = this.RenderOpen();

    // 自定义绘制;

    dc.Close();

    }

    然后在FrameworkElement中支持这些DrawingVisual的点击测试,在MouseMove的时候,统一移动改变这些DrawingVisual所绘制的图形在FrameworkElement中的相对位置。并调用上述的Update方法进行重绘。

    拖动过程非常卡,毫无流畅的感觉。

    如何可以改进?或者其他方案?

    需求是:可以支持每个图形的独立绘制(支持点击测试),同时可以支持所有图形的统一更新。

    谢谢。


    • 已编辑 玄圣 2012年7月10日 6:07
    2012年7月10日 3:42

答案

全部回复