WPF Richtextbox и сочетания клавиш

Я реализую приложение WPF с richtextbox для немецких пользователей. Они хотят использовать свои «обычные» сочетания клавиш для базового форматирования: полужирный, курсив, подчеркивание.

На английском языке сочетания клавиш CTRL + B, CTRL + I и CTRL + U работают в Richtextbox.

Однако "обычные" немецкие горячие клавиши: CTRL + SHIFT + F (Fett = Bold), CTRL + < kbd> SHIFT + K (Kursiv = Italic) и CTRL + SHIFT + U (для Подчеркнуть). При запуске приложения WPF (.net 4.0) на немецком компьютере с Windows (Windows 7) Richttextbox не реагирует на эти сочетания клавиш, а также не работают «английские» ярлыки. Только CTRL + SHIFT + F что-то делает, но делает это неправильно: выделяет выделенный текст курсивом, а не полужирным.

Есть предложения, как это исправить? Есть ли способ явно определить сопоставления ярлыков для RichTextBox? Есть другие предложения? Это ошибка?

С уважением,

Робби Де Саттер


person Robbie    schedule 16.08.2010    source источник


Ответы (1)


Я думаю, вы можете отключить привязку команд, которую не хотите разрешать, с помощью:

    <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-команды

person KrisTrip    schedule 16.08.2010
comment
Это может сработать, но, к сожалению, локализация нарушена в том смысле, что мне нужно явно сопоставить ярлыки для целевого языка. Хотя это обходной путь для проблемы (поскольку я нацелен на немецких пользователей), это означает, что мне нужно изменить его для другой локализации, скажем, французской. Или, если немецкий пользователь действительно предпочитает английскую Windows, он может привыкнуть к английским ярлыкам, которые тогда тоже не будут работать ... - person Robbie; 18.08.2010