我在WPF中有一个图像控件(基本上是整个窗口)。 当用户输入错误时,我希望图像更改,然后甚至摇动屏幕,请等待一秒钟(使用Thread.Sleep()),然后将图像更改回原始图像。 / p>
问题是:即使我在摇动屏幕之前更改了功能中的图像,但在执行所有功能后仍会更改它。
我如何归档目标?
这是我尝试过的:
//Change Diary Background
BitmapImage bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.UriSource = new Uri(System.IO.Path.GetDirectoryName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName) + @"\lib\ViewLogin\ViewLoginIncorrect.png");
bitmap.EndInit();
imgDiary.Source = bitmap;
Thread.Sleep(1000);
//Shake Screen
this.Left = this.Left - 20;
Thread.Sleep(50);
this.Left = this.Left + 20;
txtMasterKey.Focus();
只有完成所有操作后,我的图像才会更改。 2
答案 0 :(得分:-1)
Thread.sleep阻止ui线程,该线程将更改任何ui
那是你的问题。
使您的方法异步。
将thread.sleep(n)替换为await task.delay(n)。
n是您那里的数字。