zoukankan      html  css  js  c++  java
  • wpf 实现快捷键

    xaml

    <Window x:Class="MenuItemCommandDemo.Window1"    
            xmlns:local
    ="clr-namespace:MenuItemCommandDemo"   
            xmlns
    ="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    
            xmlns:x
    ="http://schemas.microsoft.com/winfx/2006/xaml"    
            Title
    ="Window1" Height="300" Width="300">
        
    <Grid>
            
    <!--添加button 并且指定command的事件 -->
            
    <Button Height="23" HorizontalAlignment="Left" Margin="23,83,0,0" Name="button1" VerticalAlignment="Top" Width="75" Command="ApplicationCommands.Help">f1</Button>
            
    <Button HorizontalAlignment="Left" Margin="23,129,0,110" Name="button2" Width="75" Command="local:CustomCommands.StartProcCommand">ctrl + m</Button>
        
    </Grid>
    </Window>

    c#

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    using System.Diagnostics;

    namespace MenuItemCommandDemo
    {
        
    //实现类
        public static class CustomCommands
        {
            
    private static RoutedUICommand startProcCommand;
            
    public static RoutedUICommand StartProcCommand
            {
                
    get
                {
                    
    if (startProcCommand == null)
                    {
                        startProcCommand 
    = new RoutedUICommand("StartProc""StartProc"typeof(Window1), new InputGestureCollection {  new KeyGesture(Key.M, ModifierKeys.Control) });
                    } 
                    
    return startProcCommand;
                }
            }
        }
        
    //页面类
        public partial class Window1 : Window
        {
            
    public Window1()
            {

                InitializeComponent();

                
    //绑定快捷键
                this.CommandBindings.Add
                    (
    new CommandBinding
                        (CustomCommands.StartProcCommand, 
                        (sender, e) 
    => //以下是具体事件内容,可自行编写
                            {
                                Process proc 
    = new Process();
                                proc.StartInfo 
    = new ProcessStartInfo(@"c:\windows\notepad.exe"null);
                                proc.Start();
                            }, 
                        (sender, e) 
    =>
                            {e.CanExecute 
    = true;}
                        )
                    );

                
    //绑定快捷键
                this.CommandBindings.Add
                    (
    new CommandBinding
                        (ApplicationCommands.Help,
                        (sender, e) 
    => //以下是具体事件内容 ,可自行编写
                            {
                                MessageBox.Show(
    "Help!");
                            }, 
                        (sender, e) 
    =>
                            {e.CanExecute 
    = true;}
                         )
                     );
            }
        }
    }
  • 相关阅读:
    计算机网络——浅析TCP粘包,拆包发生的原因以及解决方式
    计算机网络——谈谈HTTP中GET与POST的区别
    浅析Cookie、Session以及Token机制
    说说红黑树——不谈操作,只讲理解
    设计模式(1)——单例模式详解
    【转载】二叉排序树和平衡二叉树详解
    深入理解Java中方法重载的实现原理
    真win10官方原版ISO下载方法
    我的Windows装机必备软件与生产力工具
    Caffe源码理解3:Layer基类与template method设计模式
  • 原文地址:https://www.cnblogs.com/xh831213/p/1772066.html
Copyright © 2011-2022 走看看