【发布时间】:2017-02-02 18:27:01
【问题描述】:
我在我的 XAML 代码中定义了一个键绑定:
<KeyBinding Command="{Binding CopyCommand}" Modifiers="Control" Key="C" />
如果我按CTRL+C,则不会调用CopyCommand。如果我改用以下内容:
<KeyBinding Command="{Binding CopyCommand}" Modifiers="Control" Key="U" />
然后按CTRL+U 命令可以正常工作。
我认为这样做的原因是,CTRL+C 在其他地方被处理并且KeyEventArgs 的Handled 值设置为true,所以它没有达到我的控制范围。
我是否有可能找到此/任何给定事件的所有消费者?我能否以某种方式从事件创建到使用时调试/跟踪事件?
仅仅搜索 KeyDown-handlers 并不是一个真正的选择。
我什至可以使用外部软件,例如类似于 Snoop,但更喜欢使用 Visual Studio 2012 或编写代码的解决方案。
【问题讨论】:
-
我不认为你可以这样做,但是事件冒泡 up,这意味着罪魁祸首可能是你的窗口的孩子(或拥有该窗口的任何东西@ 987654331@)。发生这种情况时,哪个控件具有键盘焦点?
-
我建议你看看这个话题stackoverflow.com/a/12943306/7486915
标签: c# visual-studio events visual-studio-2012