gpt4 book ai didi

c# - 为什么 System.Windows.MessageBox 滞后于 WPF 窗口?

转载 作者:行者123 更新时间:2023-11-30 14:14:19 24 4
gpt4 key购买 nike

考虑以下代码:

private void Window_Loaded(object sender, RoutedEventArgs e)
{
MessageBox.Show("MyMessage");
}

如果我试图在加载 WPF 窗口后显示消息框,当我运行应用程序时,WPF 窗口显示为透明背景(只有非客户区可见)并且需要 3- 5 秒后消息框出现。只有在消息框关闭后,WPF 窗 Eloquent 恢复正常。

这正常吗?还有其他人遇到过这种情况吗?

编辑:我添加了窗口外观的屏幕截图:

enter image description here

最佳答案

MessageBox 显示在Normal DispatcherPriority ,它发生在 DataBindRenderLoaded 之前,因此初始化 Window 对象的代码只有在您关闭之后才会运行消息框

您可以通过简单地在稍后的 DispatcherPriority 显示 MessageBox 来解决这个问题,例如 Background

private void Window_Loaded(object sender, RoutedEventArgs e)
{
InitializeComponent();

this.Dispatcher.BeginInvoke(DispatcherPriority.Background,
new Action(delegate() { MessageBox.Show("MyMessage"); }));
}

关于c# - 为什么 System.Windows.MessageBox 滞后于 WPF 窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12394913/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com