关闭

时间:2016-06-27 14:59:12

标签: c# wpf modal-dialog vsix

我在VSIX应用程序中有一个WPF窗口,我显示如下:

var myWindow = new MyWindow(this.CurrentWorkspace)
{
    Owner = Application.Current.MainWindow
};
myWindow .ShowDialog();

然而,在我关闭此窗口后,我收到以下错误消息:

  

Microsoft Visual Studio检测到某个操作正在阻止   用户输入。这可能是由活动模式对话框或任务引起的   这需要阻止用户交互。

我错过了什么?

注意,这可能不需要是一个对话框窗口,但是当它没有时我有一个problem

2 个答案:

答案 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