请考虑以下代码:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
MessageBox.Show("MyMessage");
}
如果我在加载WPF窗口后尝试显示消息框,当我运行应用程序时,WPF窗口会显示透明背景(只有非客户区域可见)并且需要3- 5秒,直到出现消息框。只有在消息框关闭后,WPF窗口才会恢复正常。
这是正常的吗?有没有其他人经历过这个?
编辑:我添加了窗口的截图:
答案 0 :(得分:7)
MessageBox
Normal
会显示在DataBind
DispatcherPriority之前,Render
,Loaded
和MessageBox
之类在您关闭MessageBox
您可以通过在稍后的DispatcherPriority中显示Background
来解决此问题,例如private void Window_Loaded(object sender, RoutedEventArgs e)
{
InitializeComponent();
this.Dispatcher.BeginInvoke(DispatcherPriority.Background,
new Action(delegate() { MessageBox.Show("MyMessage"); }));
}
{{1}}
答案 1 :(得分:0)
尝试Show
方法的this重载或任何其他重载,接受Window
实例作为参数。