WPF Richtextbox и сочетания клавиш - PullRequest
1 голос
/ 16 августа 2010

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

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

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

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

С уважением,

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

1 Ответ

2 голосов
/ 16 августа 2010

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

    <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

...