使用+/-键阻止WPF CheckBox检查/取消选中

时间:2018-03-10 20:42:58

标签: wpf checkbox textbox

我正在WPF中创建一个表单。某些字段是可选的,但它们的实现方式是,它们的TextBox在CheckBoxes中。一切似乎都运行正常,但是,如果用户尝试键入+号或 - 符号,则会自动选中/取消选中该复选框,并且不会将该字符写入TextBox。

我认为这是因为当CheckBox或其内容具有焦点时,CheckBox会监听按键操作,并且默认情况下可能会连接到这样的行为。

有什么方法可以阻止CheckBox听这两个键吗?

(我不发布示例代码,因为它只是WPF中CheckBox内的TextBox)

1 个答案:

答案 0 :(得分:0)

我自己想出来了。

所以是的,确实WPF CheckBox默认监听其自己的KeyDown事件处理程序上的按键。如果CheckBox是一个三态CheckBox,这个事件处理程序具有什么不做的特性,所以,这只是编写一些hack-code的问题:

TheCheckBox.IsThreeState = true;
TheCheckBox.Indeterminate += (sender, e) => TheCheckBox.IsChecked = false;

我真诚地不知道为什么这不是一个选项而不是将这个监听器永久地烘焙到CheckBox中。