如果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
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