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

efl*_*les 5 copy-paste user-interaction silverlight-4.0

什么是最好的检测方法 CtrlV在Silverlight中 +?

我想检测Ctrl+ V,以获得对剪贴板的访问权限.

小智 6

if (e.Key == Key.V)
{
    if ((Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control)
    {
        //do what you want on paste
    }
}
Run Code Online (Sandbox Code Playgroud)

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


Elo*_*off 0

编辑

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

原答案

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

  • GetText,从剪贴板检索文本
  • SetText,将文本放置在剪贴板上
  • ContainsText,表示剪贴板当前是否包含文本