C#WPF禁用复选框取消选中时 - 或+键入
问题描述:
好我的问题很简单: 我有这样的一个文本框复选框:C#WPF禁用复选框取消选中时 - 或+键入
<CheckBox>
<TextBox x:Name="FilterTextBox">Custom-Filter</TextBox>
</CheckBox>
现在我只想输入一个字符串“ - “符号在里面。但不幸的是,在wpf的标准复选框类中有一个KeyPress事件。我甚至不知道这个功能,但是如果你按下“ - ”,它将取消选择复选框,如果你按“+”,它会检查它。所以我不能在其中输入带“ - ”的字符串。但我需要这样做!
我该如何禁用该按键事件或重写它无能为力?
我发现了一个类似的问题在这里:How do I disable dash + equals on a check box object in xaml?
但它不帮我,没有造成这些问题的答案似乎为我工作。
答
好吧,我很抱歉,答案actualy为我所做的工作:https://stackoverflow.com/a/37743639/6903474
但是是有这个问题没有别的解决办法?马布什更容易的地方,我不必做一个新的课程,并重写该方法?
答
嗯..这是一种黑客,但我认为它应该工作。
首先,定义CheckBox
为ThreeState
,并添加一个事件处理不确定的事件:
<CheckBox IsThreeState="True" Indeterminate="CheckBox_Indeterminate">
<TextBox x:Name="FilterTextBox">Custom-Filter</TextBox>
</CheckBox>
且事件处理程序将是这样的:
private void CheckBox_Indeterminate(object sender, RoutedEventArgs e)
{
((CheckBox)sender).IsChecked = false;
}