Silverlight:纠结的快捷键问题

如果SL是以浏览器模式运行的,要想找到满意的快捷键,通常会让人郁闷,因为浏览器会优先拦截掉大部分默认的快捷键,如果您还安装了某些IE插件,它们的优先级也比SL高,此外,如果还开着QQ等东东,QQ又会占用一些快捷键,这样剩下可用的快捷键就不多了。
测试代码如下:
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
posted @ 2011-06-17 13:55  菩提树下的杨过  阅读(1528)  评论(2编辑  收藏  举报