我正在爲wp 7.x/8製作一個應用程序。在c中睡眠/暫停功能#
有類似的功能 -
public void draw()
{
.............
ImageBrush imgbrush = new ImageBrush();
imgbrush.ImageSource = new BitmapImage(...);
rect.Fill = imgbrush; //rect is of type Rectangle that has been created
//and added to the canvas
........
}
和其他功能
private void clicked(object sender, RoutedEventArgs e)
{
draw();
........
if (flag)
{
Thread.sleep(5000);
draw();
}
}
但單擊該按鈕時,雙方戰平操作的結果同時出現在屏幕上。
如何使第二次繪製()操作的結果在一些延遲後出現?
或者有沒有像屏幕緩衝區的東西,直到緩衝區沒有填充屏幕不會刷新?
在這種情況下,如何顯式刷新或刷新屏幕或強制Rectangle的.fill()方法在屏幕上進行更改?
在這方面的任何幫助將不勝感激。
您是否試圖增加延遲?也許讓它成爲一個愚蠢的高數字開始,然後調整它呢? – PsyKzz 2013-03-02 19:12:55
我不知道爲什麼會出現這種情況,但凍結主UI線程通常不是一個好主意。你爲什麼不發射某種異步計時器? – OldProgrammer 2013-03-02 19:13:41
您還沒有在OnPaint()方法中收集您的draawing代碼。這將提供對窗體的Invalidate(),Refresh()和Update()方法的訪問,以控制繪畫的各個方面。手動(和自動)雙緩衝很容易完成,但如果您需要,我還不確定。 – 2013-03-02 19:17:54