我在VSIX应用程序中有一个WPF窗口,我显示如下:
var myWindow = new MyWindow(this.CurrentWorkspace)
{
Owner = Application.Current.MainWindow
};
myWindow .ShowDialog();
然而,在我关闭此窗口后,我收到以下错误消息:
Microsoft Visual Studio检测到某个操作正在阻止 用户输入。这可能是由活动模式对话框或任务引起的 这需要阻止用户交互。
我错过了什么?
注意,这可能不需要是一个对话框窗口,但是当它没有时我有一个problem。
答案 0 :(得分:2)
我已经多次遇到这种情况,避免此问题的最简单方法是从Microsoft.VisualStudio.PlatformUI.DialogWindow派生对话,以确保它是正确的父级,以及IDE&#39 ; s模态状态相应设置。
基本上,这里的问题是IDE并不真正了解你的对话框,它可以通过Win32 / WinForms或WPF实现,并调用IVSUIShell.EnableModeless,适用于前者,I&#ve;从来没有能够与后者合作。所以我只是从Microsoft.VisualStudio.PlatformUI.DialogWindow派生出来,让它处理细节。
此致
答案 1 :(得分:0)
发现DialogWindow解决了上述问题,但它并不是一个完整的解决方案。请参阅:this blog post。