感谢大神
问题其实很简单,就是我用了一个Image对象显示图片,Image对象较大,窗口只显示其中一部分。其中一个步骤是先更新Image中的图像数据,然后移动Image的位置(调整Margin),
并保证这两个操作之后窗口中显示出来的图像是不变的,也就是从界面上看不到这个操作(也不希望看到)。一般情况是可以的,但有一定概率(大概1/5?)会闪一下,我猜测是更新图像数据后界面刷新了一下,然后才移动了Image的位置。
我的问题是怎样才能让这两个操作之后只刷新一次界面?(也就是不要有闪的现象)
WriteableBitmap w;
{一些初始化和填充w的代码}
var I=new Image();
I.Source = w;
mainCanvas.Children.Add(I);
{其它代码}
Application.Current.Dispatcher.Invoke(new Action(() =>{
w.Lock();
{更新w中的数据}
w.AddDirtyRect(new Int32Rect(0, 0, width, hight));
w.Unlock();
I.Margin = new Thickness(left, 0, 0, 0);
}
【 在 DoorWay 的大作中提到: 】
: 问我
--
FROM 120.244.84.*