我有两个消息框一个接一个。 Dim msgResult为MessageBoxResult msgResult = MessageBox.Show(“Message”,“Title”,MessageBoxButton.YesNo,MessageBoxImage.Question)
如果mesgResult = MessageBoxresult.Yes然后 '一些代码...... MessageBox.Show(“另一条消息”,“标题”,MessageBoxButton.OK,MessageBoxImage.Error)
如果
结束当第二个消息框关闭时,用户仍然在同一个窗口上,并且消息框中标题栏的部分仍然可以在Windows文本框的正上方看到。似乎窗口没有得到刷新。怎么办呢? 谢谢。
答案 0 :(得分:1)
这通常不会出现在纯WPF应用程序中。我已经看到它发生的情况是:
解决方案各不相同:
请注意,在UI线程上执行长时间运行操作通常是一个坏主意,如果您需要运行此类操作,您的应用应该是多线程的。但是,如果您的应用程序是快速且脏的,或者您可以完全锁定UI,则可以通过确保在开始长时间运行的操作之前完全刷新Dispatcher队列来解决绘制问题。这是通过以低优先级运行空Dispatcher调用来完成的,从而首先执行所有优先级较高的操作。例如:
Dispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, new Action(() => {}));