当前位置: 首页 > 编程语言 > C#

如何防止WPFKeyDown事件从某些包含的控件(如TextBox)冒泡?

时间:2023-04-11 02:09:21 C#

如何阻止WPFKeyDown事件从某些包含的控件(如TextBox)冒泡?我的程序非常大,并且使用WPF,我希望有一个使用“R”且没有修饰符的全局快捷方式。有许多控件,如TextBox、ListBox、ComboBox等,在控件内部使用字母,这很好——对我来说是正确的。但是-我想防止KeyDown事件冒泡到主窗口,例如当用户在TextBox中键入字母“R”时,它会触发快捷方式。理想情况下,我希望能够做到这一点,而不必指定(并执行if-then逻辑)可能收到正常字母按键的每个实例/控件类型(不仅仅是TextBox控件,尽管它们是最糟糕的违法者))。只需检查Window上KeyDown事件处理程序中的OriginalSource:返回;或者,如果您使用的是InputBindings,请尝试在Window上的KeyDown或PreviewKeyDown事件上设置e.Handled=true,而不是单独的控件。无论如何,我认为OriginalSource是你回答的关键。(我发誓没有双关语)。处理KeyDown事件时会发生事件,应将其传递给KeyEventArgs。从那里您可以将Handled设置为true,这样它就不会冒泡。范例以上是C#学习教程:如何防止WPF中某些包含的控件(如TextBox)的KeyDown事件冒泡?如果分享的内容对你有用,需要进一步了解C#学习教程,希望你多多关注——privatevoidTextBoxEx_KeyAction(objectsender,KeyEventArgse){e.Handled=true;}本文收集自网络,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: