如何在Silverlight 4中检测Ctrl + V?

时间:2010-06-02 06:28:48

标签: silverlight-4.0 user-interaction copy-paste

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

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

编辑

要在您的silverlight应用程序中全局捕获 CTRL + V 按键,充满了困难。事件从子元素开始,向下冒泡到父控件,因此只需在根UIElement上处理KeyDown就不起作用了。任何文本输入控件都将首先获取事件并使其窒息(通过在事件args上将Handled设置为true。)我认为如果你使用DOM桥并为浏览器KeyDown事件订阅一个处理器,你可以使用silverlight元素本身实际上能够首先达到它,甚至在任何silverlight控件之前完全处理它。我认为这是拦截 CTRL + V 的最简单方法,但我还没有测试过。

原始答案

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

  • GetText,用于检索文本 剪贴板
  • SetText,放置 剪贴板上的文字
  • ContainsText, 这表明是否是剪贴板 目前包含文字