【发布时间】:2010-04-23 19:37:38
【问题描述】:
有一个关于 WriteableBitmap 的简单MSDN example。
它展示了如何通过在鼠标按下并在 WPF -Image Control 上移动时仅更新一个像素来使用光标绘制一条手绘线。
writeableBitmap.Lock();
(...set the writeableBitmap.BackBuffers pixel value...)
writeableBitmap.AddDirtyRect(new Int32Rect(column, row, 1, 1));
writeableBitmap.Unlock();
现在我试图理解快速移动鼠标指针时的以下行为:
如果图像/位图尺寸相对较小,例如800:600 像素,那么最后绘制的像素总是与鼠标指针位置“同步”,即没有延迟,对鼠标移动的反应非常快。
但是如果位图变大,例如1300:1050 像素,你可以注意到延迟,最后绘制的像素总是在鼠标移动后出现一点延迟。
所以在这两种情况下,只有一个像素被“AddDirtyRect”更新,反应速度应该与位图大小无关!?但似乎 Writeablebitmap 变大时会变慢。
或者整个位图是否会在每次writeableBitmap.Unlock(); 调用时以某种方式传输到图形设备,而不仅仅是AddDirtyRect 方法中指定的矩形区域?
弗里茨
【问题讨论】:
标签: wpf writeablebitmap