5

在 Silverlight中检测Ctrl+的最佳方法是什么?V

我想检测Ctrl+ V,以访问剪贴板。

4

2 回答 2

6
if (e.Key == Key.V)
{
    if ((Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control)
    {
        //do what you want on paste
    }
}

您必须在 keyUp 事件中使用它。更多细节可以在这里找到:http: //msdn.microsoft.com/en-us/library/cc189015%28VS.95%29.aspx

于 2010-07-08T17:16:08.520 回答
0

编辑

在您的 Silverlight 应用程序中全局捕获CTRL+按键是非常困难的。V事件从子元素开始并一直向下传递到父控件,因此仅在根 UIElement 上处理 KeyDown 是行不通的。任何文本输入控件都会首先获取事件并将其扼杀(通过在事件参数上将 Handled 设置为 true。)我认为,如果您使用 DOM 桥并为 silverlight 元素本身订阅浏览器 KeyDown 事件的处理程序,您可能实际上能够先得到它,甚至在任何silverlight控件都可以之前完全处理它。我认为这将是拦截CTRL+的最简单方法V,但我还没有测试过。

原始答案

您应该使用System.Windows.Clipboard类。

  • GetText,从剪贴板中检索文本
  • SetText,将文本放在剪贴板上
  • ContainsText,表示剪贴板当前是否包含文本
于 2010-06-02T06:31:13.633 回答