【发布时间】:2011-02-26 16:21:24
【问题描述】:
在 Silverlight 中检测 Ctrl+V 的最佳方法是什么?
我想检测 Ctrl+V,以访问剪贴板。
【问题讨论】:
-
您想在您的应用程序中全局拦截 Ctrl+V 吗?
标签: silverlight-4.0 user-interaction copy-paste
在 Silverlight 中检测 Ctrl+V 的最佳方法是什么?
我想检测 Ctrl+V,以访问剪贴板。
【问题讨论】:
标签: silverlight-4.0 user-interaction copy-paste
编辑
要在silverlight 应用程序中全局捕获CTRL+V 按键,非常困难。事件从子元素开始并一直向下传递到父控件,因此仅在根 UIElement 上处理 KeyDown 是行不通的。任何文本输入控件都会首先获取事件并将其扼杀(通过在事件参数上将 Handled 设置为 true。)我认为,如果您使用 DOM 桥并为 silverlight 元素本身订阅浏览器 KeyDown 事件的处理程序,您可能实际上能够先得到它,甚至在任何silverlight控件都可以之前完全处理它。我认为这将是最简单的拦截CTRL+V的方法,但我没有测试过。
原答案
您应该使用System.Windows.Clipboard 类。
【讨论】:
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
【讨论】: