在Wpf应用程序中实现快捷键

时间:2011-11-09 05:48:37

标签: wpf

我是wpf应用程序的新手,我正在处理应用程序,我已经创建了一个菜单现在我想在短按键ctrl + o,ctrl + n等功能菜单项事件上运行。我该怎么做。请给我详情。

2 个答案:

答案 0 :(得分:3)

你可以用以下方式......

在Xaml文件中

<Window x:Class="FocusDemo.Window1"  
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  
    xmlns:local="clr-namespace:FocusDemo"  
Title="Window1" Height="300" Width="300">  

<Window.CommandBindings>  
    <CommandBinding   
        Command=   
        "{x:Static   
        local:Window1.CustomRoutedCommand}"                       
        Executed="ExecutedCustomCommand"   
        CanExecute="CanExecuteCustomCommand" >  
    </CommandBinding>  
</Window.CommandBindings>  
<Window.InputBindings>  
    <KeyBinding   
        Command=  
        "{x:Static   
        local:Window1.CustomRoutedCommand}"   
        Key="S"   
        Modifiers="Control"/>  
</Window.InputBindings>
<Grid>
<!--Your Controls-->
</Grid>
</Window>  

在代码隐藏文件

    /// <summary>  
/// Interaction logic for Window1.xaml  
/// </summary>  
public partial class Window1 : Window  
{  
    public static RoutedCommand CustomRoutedCommand = new RoutedCommand();    
    public Window1()  
    {             
        InitializeComponent();       
    }  
    #region  
    public void ExecutedCustomCommand(object sender, ExecutedRoutedEventArgs e)  
    {  
        MessageBox.Show("Ctrl+S");  
    }  


    public void CanExecuteCustomCommand(object sender,  
        CanExecuteRoutedEventArgs e)  
    {  
        e.CanExecute = true;  
    }  
    #endregion   

}  

来源:Click here

如果正确

,请不要忘记标记答案

答案 1 :(得分:0)

我知道这不是问题的确切答案,但可能像我这样的人正在寻找将任何键盘快捷键放到菜单项(命令按钮)上的方法,比如Alt + O,Alt + N.在这种情况下,您可以在项目名称中的快捷方式字符前放置非字符字符(_)。