using (FileStream fswrite = File.OpenWrite(path)) { wb.Write(fswrite); MessageBox.Show("导出完成!", "提示", MessageBoxButton.OK, MessageBoxImage.Asterisk); }wpf messagebox怎么2秒后自动关闭
时间: 2024-02-10 14:07:44 浏览: 100
你可以在`MessageBox.Show`之前添加`Task.Delay`来延迟2秒钟后自动关闭`MessageBox`。以下是示例代码:
```
using (FileStream fswrite = File.OpenWrite(path))
{
wb.Write(fswrite);
var messageBoxResult = MessageBox.Show("导出完成!", "提示", MessageBoxButton.OK, MessageBoxImage.Asterisk);
if (messageBoxResult == MessageBoxResult.OK)
{
await Task.Delay(2000);
var activeWindow = Application.Current.Windows.OfType<Window>().SingleOrDefault(x => x.IsActive);
activeWindow?.Close();
}
}
```
这段代码会在`MessageBox.Show`之后等待2秒钟,然后关闭处于活动状态的窗口。请注意,这里使用`Application.Current.Windows.OfType<Window>().SingleOrDefault(x => x.IsActive)`来获取当前活动的窗口,因为MessageBox可能会弹出一个新的窗口并将其设置为活动窗口。
阅读全文