WPF WriteableBitmap移动对象闪烁

时间:2013-11-25 08:46:26

标签: c# wpf multithreading writeablebitmap

我有一个移动的对象。该对象由点列表表示。计算是在一个单独的线程中完成的。 为了绘制这一点,有一个附加了WriteableBitmap的窗口。 绘图方法看起来像这样。

  • 清除WriteableBitmap
  • ForEach point将其绘制到位图
  • 通过窗口调度程序
  • 调用窗口的InvalidateVisual()方法

如果经常这样做(每100毫秒),结果就是一个闪烁的窗口。我怎么能避免这种情况?

编辑:示例代码

绘图组件的代码

public void FillColor(Color color)
    {
        writeableBitmap.Clear(Colors.White);
        writeableBitmap.Clear(color);
        window.Dispatcher.Invoke(
        DispatcherPriority.Render, new Action(() => window.InvalidateVisual()));

    }

Clear()将整个Bitmap设置为特定颜色。

第二个线程调用绘图。

private void DrawObjectFull()
    {
        while (true)
        {
            window.FillColor(Colors.BurlyWood);
            Thread.Sleep(100);
        }

    }

编辑#2:我不完全确定这是否是最佳方法。最后我只想顺畅地从a到b绘制一个移动物体。

0 个答案:

没有答案