另一个顶级WPF窗口是窃取热键/命令

时间:2015-07-27 17:12:27

标签: wpf visual-studio

我有一个带有一些标准WPF控件的顶级WPF窗口;其中一个是TextBox。我从VisualStudio扩展中实例化我的窗口,但是我不相信VS应该归咎于以下内容:

如果我使用ShowDialog()显示我的窗口,一切都很好。

但是,我希望我的窗口不是模态的,所以我使用Show代替,这会打开一些问题:

  1. 在TextBox中我可以写字符。但是,如果打开VS源编辑器,它将窃取剪贴板热键(例如ctrl + v),退格将停止工作。
  2. 如果我按下alt + f4,VS将退出,而不仅仅是我的窗口(当时有焦点)。
  3. 显然VS正在窃取密钥和/或命令,而我不知道如何在我的非模态窗口具有焦点时阻止它。是否可以这样做?

    感谢。

2 个答案:

答案 0 :(得分:1)

如果您正在编写Visual Studio扩展,我建议您将非模态WPF窗口实现为Visual Studio工具窗口。它应解决这些键盘窃取问题。

答案 1 :(得分:0)

与此同时,我设法通过将我的Window放入一个单独的UI线程来解决我的问题。

但是,由于我还在学习WPF,我真的很想知道这个问题的解释和真正解决方案。