2017-10-18 174 views
0

如果我使非模態窗口出現不同的問題。所有我打開Visual Studio的實驗版本,並打開一個解決方案,我導航到一個C#頁面。然後我打開我的擴展的WPF窗口,在那裏我可以愉快地在該WPF窗口中輸入文本框。但是,無論何時單擊退格鍵[< - ]或[刪除]鍵,這不會影響當前WPF文本框,而是當前解決方案中以前打開的C#代碼窗口。我用這種方式打開我的窗口:VSIX和VS SHELL:窗口顯示問題()

window = new MyWindow() 
window.show(); 

我知道我可以解決我的問題:

uiShell.EnableModeless(0); 
window = new MyWindow() 
window.ShowDialog(); 
uiShell.EnableModeless(1); 

但我不希望這樣的解決方案。我想在visual studio shell中導航文件,同時使用我的插件而不會有輸入問題。如何使用Show()解決此問題?

+0

您應該DialogWindow – ErikEJ

+0

繼承難道我的窗口應該從DialogWindow繼承和我應該使用Window.Show()? – user2837896

+0

好吧我從DialogWindow繼承。但與Show()我有同樣的問題。 我打開我的插件,我寫在一個文本框中,然後我點擊VS殼(C#文件):如果我刪除我的文本框光標保持在C#文件 – user2837896

回答

0

如果要顯示「非模態」窗口,它需要是一個工具窗口或文檔窗口。否則,VS不會知道它,你會遇到各種各樣的問題,它不會得到消息,事件,加速器等......

如果你想要一個模態窗口,使用前面提到的DialogWindow類以確保當對話框顯示或解除時,IDE可以正確禁用/啓用它的窗口。

真誠,