关闭后 WPF 对话框阻止输入
WPF dialog blocking input after closing
我在 VSIX 应用程序中有一个 WPF window,显示如下:
var myWindow = new MyWindow(this.CurrentWorkspace)
{
Owner = Application.Current.MainWindow
};
myWindow .ShowDialog();
但是,在我关闭此 window 之后,我收到以下错误消息:
Microsoft Visual Studio has detected that an operation is blocking
user input. This can be caused by an active modal dialog or a task
that needs to block user interaction.
我错过了什么?
请注意,这可能不需要是一个对话框 window,但我有一个 而不是。
我遇到过很多次,避免这个问题的最简单方法是从 Microsoft.VisualStudio.PlatformUI.DialogWindow 派生对话框,以确保它的父级正确,并且 IDE 的相应地设置模态状态。
基本上,这里的问题是 IDE 并不真正了解您的对话框,它可以通过 Win32/WinForms 或 WPF 实现,并调用 IVSUIShell.EnableModeless,适用于前者,我从来没有能够让它与后者一起工作。所以我只是从 Microsoft.VisualStudio.PlatformUI.DialogWindow 派生并让它处理细节。
此致,
发现DialogWindow解决了提到的问题,但不是一个完整的解决方案。参考:.
我在 VSIX 应用程序中有一个 WPF window,显示如下:
var myWindow = new MyWindow(this.CurrentWorkspace)
{
Owner = Application.Current.MainWindow
};
myWindow .ShowDialog();
但是,在我关闭此 window 之后,我收到以下错误消息:
Microsoft Visual Studio has detected that an operation is blocking user input. This can be caused by an active modal dialog or a task that needs to block user interaction.
我错过了什么?
请注意,这可能不需要是一个对话框 window,但我有一个
我遇到过很多次,避免这个问题的最简单方法是从 Microsoft.VisualStudio.PlatformUI.DialogWindow 派生对话框,以确保它的父级正确,并且 IDE 的相应地设置模态状态。
基本上,这里的问题是 IDE 并不真正了解您的对话框,它可以通过 Win32/WinForms 或 WPF 实现,并调用 IVSUIShell.EnableModeless,适用于前者,我从来没有能够让它与后者一起工作。所以我只是从 Microsoft.VisualStudio.PlatformUI.DialogWindow 派生并让它处理细节。
此致,
发现DialogWindow解决了提到的问题,但不是一个完整的解决方案。参考: