2017-01-23 76 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; 
} 
相關問題