好吧我的问题很简单: 我有一个带有文本框的复选框:
<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 :(得分:0)
好的,我很抱歉实际上的答案对我有用:https://stackoverflow.com/a/37743639/6903474
但这个问题没有其他解决办法吗? Mabye更容易,我不需要创建一个新类并覆盖该方法?
答案 1 :(得分:0)
嗯..这是一种黑客行为,但我认为它应该有用。
首先,将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;
}