【问题标题】:Command Inputbindings work but Shortcut does not show in MenuItem命令输入绑定有效,但快捷方式未显示在 MenuItem 中
【发布时间】:2011-05-19 14:19:29
【问题描述】:

问题:

我正在使用 Josh Smith 的 implementation 用于 MVVM 的使用路由命令的命令。我有一个绑定到命令的MenuItem

输入绑定在父窗口中定义。当我运行程序时,我可以使用键盘快捷键,但 MenuItem 没有在 MenuItem 标题旁边显示 Control+O

图片:

代码:

命令绑定:

 <Window.CommandBindings>
    <cmd:CommandSinkBinding Command="vm:MainVM.OpenDialogCommand" />
</Window.CommandBindings>

<Window.InputBindings>
    <KeyBinding Command="vm:MainVM.OpenDialogCommand" Key="O" Modifiers="Ctrl"/>
</Window.InputBindings>

菜单项:

<MenuItem Header="Open" Command="vm:MainVM.OpenDialogCommand" />

注意: MenuItem 已设置样式,但删除样式并没有什么不同。

【问题讨论】:

    标签: c# wpf mvvm command


    【解决方案1】:

    试试这个

    <MenuItem Header="Open" Command="vm:MainVM.OpenDialogCommand" 
           InputGestureText="Ctrl+O" />
    

    【讨论】:

    • 它有效。只是好奇,为什么 InputGestureText 默认出现在内置命令中?
    • @Proximo 因为内置命令设置了InputGestures。默认情况下,WPF 从每个InputGesture 中获取DisplayString,并将其作为命令快捷方式显示在菜单项中。例如,“复制”命令有两个 InputGestures。首先是DisplayString="Ctrl+Insert"Key="Insert"Modifiers="Control",其次是DisplayString="Ctrl+C"Key="C"Modifiers="Control"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    • 2021-04-17
    • 1970-01-01
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多