Silverlight:纠结的快捷键问题

2018-01-23 17:17:34 浏览数 (1)

如果SL是以浏览器模式运行的,要想找到满意的快捷键,通常会让人郁闷,因为浏览器会优先拦截掉大部分默认的快捷键,如果您还安装了某些IE插件,它们的优先级也比SL高,此外,如果还开着QQ等东东,QQ又会占用一些快捷键,这样剩下可用的快捷键就不多了。

测试代码如下:

代码语言:javascript复制
void MainPage_KeyDown(object sender,KeyEventArgs e)
{

    e.Handled = true;
    ModifierKeys keys = Keyboard.Modifiers;
    bool b1 = false;
    if ((e.Key >= Key.A && e.Key <= Key.Z) || (e.Key>=Key.D0 && e.Key<=Key.D9) || (e.Key>=Key.NumPad0 && (e.Key<=Key.NumPad9))) 
    {
        b1 = true;
    }
    bool b2 = (keys != ModifierKeys.None);
    bool b3 = (b1 && b2);
    string msg = string.Format("按键={0},控制键={1},按键是否有效={2},控制键是否有效={3},组合键是否有效={4}", e.Key, keys, b1, b2, b3);            
    System.Diagnostics.Debug.WriteLine(msg);
    test.Text = msg;

    if (b3) 
    {
        MessageBox.Show(string.Format("捕获到的组合键为:{0} {1}", keys.ToString(), e.Key.ToString()));
    }
}

经过我实际测试,可用的快捷键如下:(当然并未穷举测试所有的组合)

Ctrl A(注:这个虽然可响应,但是一般用于全选,意义不大) Ctrl C(注:这个虽然可响应,但是一般用于复制,意义不大) Ctrl F(注:这个虽然可响应,但是一般用于查找)) Ctrl U Ctrl V(注:这个虽然可响应,但是一般用于粘贴,意义不大) Ctrl X Ctrl Y Ctrl Z(注:这个虽然可响应,但是一般用于撤销) Ctrl 0 (数字0) --------------- Ctrl 小键盘数字0-9 ---------------------------- Ctrl Alt 小键盘数字0-9 ---------------------------- Ctrl Alt 数字0-9 ---------------------------- Ctrl Shift 数字1-9

0 人点赞