【问题标题】:WPF Richtextbox and keyboard shortcutsWPF Richtextbox 和键盘快捷键
【发布时间】:2010-08-16 17:27:25
【问题描述】:

我正在为德国用户实现一个带有富文本框的 WPF 应用程序。他们想使用“正常”的键盘快捷键来进行一些基本的格式化:粗体、斜体、下划线。

在英文中,快捷键 CTRL+BCTRL+ICTRL+U 在 Richtextbox 中工作。

然而,“正常”的德语快捷键是 CTRL+SHIFT+F(Fett = Bold),CTRL+SHIFT+K(Kursiv = 斜体)和 CTRL+SHIFT+U(用于下划线)。在德国 Windows 机器 (Windows 7) 上运行 WPF (.net 4.0) 应用程序时,Richttextbox 对这些快捷方式没有反应,而且“英语”快捷方式也不起作用。只有 CTRL+SHIFT+F 正在做某事,但做错了:它使所选文本变为斜体,而不是粗体。

关于如何解决此问题的任何建议?有没有办法为 RichTextBox 明确定义快捷方式映射?还有其他建议吗?这是一个错误吗?

亲切的问候,

罗比·德萨特

【问题讨论】:

    标签: wpf localization richtextbox shortcut


    【解决方案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-commands

    【讨论】:

    • 这可能行得通,但不幸的是,本地化被破坏了,因为我必须明确映射目标语言的快捷方式。虽然这是解决问题的方法(因为我针对的是德国用户),但这意味着我需要将其更改为另一个本地化,比如说法语。或者如果一个德国用户实际上更喜欢英文 Windows,他可能已经习惯了英文快捷方式,这也不会起作用......
    猜你喜欢
    • 2010-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多