vb.net中关闭消息框后的WPF刷新
我有两个消息框,一个接一个。 将msgResult变暗为MessageBoxResult msgResult=MessageBox.Show(“消息”,“标题”,MessageBoxButton.YesNo,MessageBoxImage.Question) 如果mesgResult=MessageBoxresult.Yes,则 “一些代码。。。。。 显示(“另一条消息”,“标题”,MessageBoxButton.OK,MessageBoxImage.Error) 如果结束 当第二个消息框关闭时,用户仍保持在同一窗口上,并且消息框中的标题栏部分仍在windows文本框的正上方可见。窗口似乎没有刷新。如何处理?vb.net中关闭消息框后的WPF刷新,wpf,vb.net,window,refresh,Wpf,Vb.net,Window,Refresh,我有两个消息框,一个接一个。 将msgResult变暗为MessageBoxResult msgResult=MessageBox.Show(“消息”,“标题”,MessageBoxButton.YesNo,MessageBoxImage.Question) 如果mesgResult=MessageBoxresult.Yes,则 “一些代码。。。。。 显示(“另一条消息”,“标题”,MessageBoxButton.OK,MessageBoxImage.Error) 如果结束 当第二个消息框关闭
谢谢。这通常不会发生在纯WPF应用程序中。我所看到的情况是:
- 在案例1和案例4中,问题通常是显而易见的,解决方案通常是修复线程问题。如果线程问题不明显,按照Hans Passant的建议中断调试器可能会发现一个您不知道的长时间运行的操作,例如数据库访问
- 在案例2中,您可以通过临时切换到软件渲染进行诊断,并通过更新视频驱动程序进行修复
- 在案例3中,如果另一个应用程序不重新绘制,您将无能为力,但用户应该认识到这不是您的软件的问题
- 在案例4中,如果线程问题不明显,那么隔离非WPF代码并查看哪些消息处理线程处于活动状态通常是有帮助的
Dispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, new Action(() => {}));
使用Debug+breakall并查看调用堆栈。某些代码正在运行,阻止窗口自行绘制。