• WPF中更改键盘默认指令小结


    在System.Windows.Input 里有着所有键的集合,经测试要注意以下几点(纯实践所得经验,还请高手指明下面不明白地方的原因):

    1. 普通情况下Key就够用了

    2. 当某个键在特定的环境下充当某种系统默认的功能时就要用到SystemKey,如Alt键在窗口中默认是激活菜单,这时用Key来判断就不起作用了。

    如下例作示,在textBox1中按右Alt键将还是激活菜单,而左Alt键盘却实现了换行的功能。

    private void textBox1_KeyDown(object sender, KeyEventArgs e)
    {
    if (e.SystemKey == Key.LeftAlt || e.Key == Key.RightAlt)
    {
    //添加一个换行字符
    textBox1.SelectedText = Environment.NewLine;
    //光标向前移动一位
    textBox1.Select(textBox1.SelectionStart + 1, 0);
    e.Handled
    = true;
    }
    }

    3.组合键的使用,首先,组合键的实现是使用系统默认功能,所以必须用SystemKey,然后需要用到Keyboard.Modifiers,如:Alt+F

    if (Keyboard.Modifiers==ModifierKeys.Alt&&e.SystemKey==Key.F)
    //do some work

    4.  在支持换行的控件中(如TextBox开启AcceptsReturn="True"时)回车键变成了换行功能,而Ctrl+回车键才是默认的回车功能,注意这时虽然是组合键,但只有用Key才有效(不明原因,请指教):

    if(Keyboard.Modifiers == ModifierKeys.Control && e.Key == Key.Enter)
    {
    //成功截取CTRL+ENTER
    }

    if (Keyboard.Modifiers == ModifierKeys.Control && e.SystemKey == Key.Enter)
    {
    //无效
    }
    并且此时用e.SystemKey == Key.Return也无法截取回车(不明原因,请指教)。

  • 相关阅读:
    每日日报
    每日日报
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
    NavigationDuplicated {_name: "NavigationDuplicated", name: "NavigationDuplicated"}
    2020.11.07
    2020.11.05
    2020.11.09
  • 原文地址:https://www.cnblogs.com/Laro/p/1958628.html
Copyright © 2020-2023  润新知