衍生在WPF應用控制空格鍵時,我有已經從文本框衍生這樣的控制:WPF:的onkeydown()沒有被調用用於從WPF文本框
public class SelectableTextBlock : TextBox
{
protected override void OnKeyDown(KeyEventArgs e)
{
base.OnKeyDown(e);
e.Handled = false;
}
}
中,onKeyDown方法沒有在向TextBox輸入空格時調用,也不是在按Backspace時觸發,而是爲包括普通可打印字符(例如'a')和修飾鍵(例如)在內的其他輸入觸發。
我將此控件與IsReadOnly設置爲true,因此我可以顯示可選擇的,不可編輯的文本。在WPFToolkit的DataGrid中使用的控件,並且我希望KeyDown事件向上傳播數據網格,即使SelectableTextBlock具有焦點,這就是爲什麼我使用自定義控件將事件明確標記爲未處理的原因。
問題是,事件甚至沒有使我的控制某些鍵。我不能僅僅在DataGrid中使用OnPreviewKeyDown來解決這個問題,因爲我確實希望數據網格中使用的其他控件吞下空間KeyDown事件。
有誰知道我怎麼可以得到空間鍵傳播的KeyDown事件?
謝謝。
感謝您的回覆,Wim。 這看起來像一個相關的問題。我發現事件不會觸發空格字符和退格鍵並刪除按鍵。 而在你的情況下,你試圖停止空格鍵被文本框處理,並通過處理預覽,我試圖讓事件冒泡到父級控制,所以這不適用於我。 我有一個解決辦法處理處理關鍵事件並將其設置爲處理。我會在回覆我的原始問題時發佈一般感興趣的代碼。仍然認爲必須有更好的方法。 謝謝,E. – Ergwun 2009-09-23 00:36:37
這應該是這樣寫的:「我有一個解決辦法來處理關鍵事件,並將它們設置爲* unhandled *。 – Ergwun 2009-09-30 00:35:23