zoukankan      html  css  js  c++  java
  • WPF中设置快捷键

    方式1:

    窗体中加入资源

     <UserControl.Resources>
            <RoutedUICommand x:Key="Cut" Text="剪切" />
            <RoutedUICommand x:Key="Copy" Text="复制" />
            <RoutedUICommand x:Key="Paste" Text="粘贴" />
            <RoutedUICommand x:Key="Select" Text="全选" />
        </UserControl.Resources>
        <UserControl.InputBindings>
            <KeyBinding Gesture="Ctrl+X" Command="{StaticResource Cut}" />
            <KeyBinding Gesture="Ctrl+C" Command="{StaticResource Copy}" />
            <KeyBinding Gesture="Ctrl+V" Command="{StaticResource Paste}" />
        </UserControl.InputBindings>
        <UserControl.CommandBindings>
            <CommandBinding Command="{StaticResource Cut}" Executed="CommandBinding_Cut"></CommandBinding>
            <CommandBinding Command="{StaticResource Copy}" Executed="CommandBinding_Copy"></CommandBinding>
            <CommandBinding Command="{StaticResource Paste}" Executed="CommandBinding_Paste"></CommandBinding>
        </UserControl.CommandBindings>

    其中:CommandBinding_Cut ,CommandBinding_Copy ,CommandBinding_Paste 是按下快捷键对用的事件操作

     private void CommandBinding_Cut(object sender, ExecutedRoutedEventArgs e)
     {
               
     }

    方式2:

    写控件或者窗体的KeyDown事件 PreviewKeyDown="Window_KeyDown"

    private void Window_KeyDown(object sender, KeyEventArgs e)
            {
                try
                {

                    if (e.Key == Key.Enter)
                    {
                        //搜索
                        if (Keyboard.FocusedElement != null && Keyboard.FocusedElement == SearchTxt) Search_Click(SearchBtn, e);
                        //文件或者文件夹重命名
                        if (Keyboard.FocusedElement != null && Keyboard.FocusedElement.GetType().Name == "TextBox")
                        {
                            TextBox box = Keyboard.FocusedElement as TextBox;
                            FilesModel model = box.DataContext as FilesModel;
                            if (model != null) ReName_LostFocus(box, e);
                        }

                        Keyboard.ClearFocus();
                    }
                    //Ctrl+C 全选
                    if ((e.KeyboardDevice.IsKeyDown(Key.LeftCtrl) || e.KeyboardDevice.IsKeyDown(Key.RightCtrl)) && e.KeyboardDevice.IsKeyDown(Key.C))
                    {
                        if (Keyboard.FocusedElement != null && Keyboard.FocusedElement.GetType().Name == "TextBox") return;
                        CommandBinding_Copy(null, null);
                    }

                    //Ctrl+X 全选
                    if ((e.KeyboardDevice.IsKeyDown(Key.LeftCtrl) || e.KeyboardDevice.IsKeyDown(Key.RightCtrl)) && e.KeyboardDevice.IsKeyDown(Key.X))
                    {
                        if (Keyboard.FocusedElement != null && Keyboard.FocusedElement.GetType().Name == "TextBox") return;
                        CommandBinding_Cut(null, null);
                    }
                    //Ctrl+V 全选
                    if ((e.KeyboardDevice.IsKeyDown(Key.LeftCtrl) || e.KeyboardDevice.IsKeyDown(Key.RightCtrl)) && e.KeyboardDevice.IsKeyDown(Key.V))
                    {
                        if (Keyboard.FocusedElement != null && Keyboard.FocusedElement.GetType().Name == "TextBox") return;
                        CommandBinding_Paste(null, null);
                    }

                    //Ctrl+A 全选
                    if ((e.KeyboardDevice.IsKeyDown(Key.LeftCtrl) || e.KeyboardDevice.IsKeyDown(Key.RightCtrl)) && e.KeyboardDevice.IsKeyDown(Key.A))
                    {
                        SelectAllCheck.IsChecked = true;
                        SelectAll_Click(SelectAllCheck, e);
                    }
                    //Shift+D 删除
                    if ((e.KeyboardDevice.IsKeyDown(Key.LeftShift) || e.KeyboardDevice.IsKeyDown(Key.RightShift)) && e.KeyboardDevice.IsKeyDown(Key.Delete))
                    {
                        DeleteBtn_Click(null, e);
                    }
                }
                catch (Exception)
                {
                }

            }

  • 相关阅读:
    【DL-2-2】卷积神经网络(CNN)--AlexNet、ZFNet、VGGNet、GoogleNet、ResNet
    Python3 错误和异常-(try/except/else/finally/raise/assert)
    生成器 Generators
    Map,Filter 和 Reduce
    装饰器
    目标检测:介绍及传统方法
    【ML-17-2】MCMC--马尔可夫蒙特卡罗方法(MH和Gibbs)
    如何在JDK1.8中愉快地处理日期和时间
    luogu1447 能量采集
    luogu1775 古代人的难题 打表找规律
  • 原文地址:https://www.cnblogs.com/zhaolili/p/5133918.html
Copyright © 2011-2022 走看看