2017-01-23 93 views
1

好我的问题很简单: 我有这样的一个文本框复选框: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?

但它不帮我,没有造成这些问题的答案似乎为我工作。

回答

0

嗯..这是一种黑客,但我认为它应该工作。

首先,定义CheckBoxThreeState,并添加一个事件处理不确定的事件:

<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; 
} 
相关问题