【问题标题】:How to detect Ctrl+V in Silverlight 4?如何在 Silverlight 4 中检测 Ctrl+V?
【发布时间】:2011-02-26 16:21:24
【问题描述】:

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

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

【问题讨论】:

  • 您想在您的应用程序中全局拦截 Ctrl+V 吗?

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


【解决方案1】:

编辑

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

原答案

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

  • GetText,从 剪贴板
  • SetText,其中放置 剪贴板上的文字
  • 包含文本, 表示剪贴板是否 当前包含文本

【讨论】:

  • 问题不是获取剪贴板的访问权限,而是在用户使用“粘贴功能”时获取访问权限。
【解决方案2】:
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

【讨论】:

    猜你喜欢
    • 2017-07-31
    • 2011-02-23
    • 2014-11-10
    • 2014-09-27
    • 1970-01-01
    • 2022-11-04
    • 1970-01-01
    • 2018-09-29
    相关资源
    最近更新 更多