2010-08-16 80 views
1

我正在爲德國用戶使用richtextbox實現WPF應用程序。他們希望使用他們的「常規」鍵盤快捷鍵來進行一些基本的格式設置:粗體,斜體,下劃線。WPF Richtextbox和鍵盤快捷鍵

在英語中,快捷鍵CTRL +CTRL +,並CTRL +ü RichTextBox中工作。

然而 「正常的」 德語快捷鍵CTRL + SHIFT + ˚F(費特=加粗),CTRL + SHIFT + ķ(Kursiv =斜體)和CTRL + SHIFT + U(對於下劃線)。在德語Windows機器(Windows 7)上運行WPF(.net 4.0)應用程序時,Richttextbox不會對這些快捷鍵作出反應,而且「英文」快捷鍵也不起作用。只有CTRL + SHIFT + F正在做某事,但做錯了:它使選定的文本斜體,而不是粗體。

有關如何解決此問題的任何建議?有沒有一種方法可以爲RichTextBox顯式定義快捷方式映射?還有其他建議嗎?這是一個錯誤?

親切的問候,

羅比·德·蘇特爾

回答

2

我認爲你可以禁用命令綁定你不想讓同:

<RichTextBox.CommandBindings> 
    <CommandBinding 
     Command="EditingCommands.ToggleBold" 
     CanExecute="BlockTheCommand"/> 
    </RichTextBox.CommandBindings> 

    protected void BlockTheCommand(object sender, 
     CanExecuteRoutedEventArgs e) 
    { 
     e.CanExecute = false; 
     e.Handled = true; 
    } 

然後,您可以創建自定義什麼命令綁定你想允許使用像這裏顯示的東西:http://www.switchonthecode.com/tutorials/wpf-tutorial-command-bindings-and-custom-commands

+0

這可能工作,但不幸的是本地化被打破了,我必須明確地映射目標語言的快捷鍵。雖然這是一個解決問題的辦法(因爲我針對的是德國用戶),但這意味着我需要將其改爲另一個本地化,比如說法語。或者,如果一個德國用戶真的喜歡英文Windows,他可能會習慣英文快捷方式,那麼也不會工作...... – Robbie 2010-08-18 19:10:49