如何在 Silverlight 4 中检测 Ctrl+V?
在 Silverlight 中检测 Ctrl+V 的最佳方法是什么?
我想检测 Ctrl+V,以访问剪贴板。
What is the best way to detect Ctrl+V in Silverlight?
I want to detect Ctrl+V, to get access to the Clipboard.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您必须在 keyUp 事件上使用它。更多详细信息可以在这里找到: http://msdn .microsoft.com/en-us/library/cc189015%28VS.95%29.aspx
You have to use this on the keyUp event. More details can be found here: http://msdn.microsoft.com/en-us/library/cc189015%28VS.95%29.aspx
编辑
要在 silverlight 应用程序中全局捕获 CTRL+V 按键充满了困难。事件从子元素开始并向下传递到父控件,因此仅在根 UIElement 上处理 KeyDown 是行不通的。任何文本输入控件都会首先获取事件并抑制它(通过在事件参数上将 Handled 设置为 true。)我认为,如果您使用 DOM 桥并为 silverlight 元素本身订阅浏览器 KeyDown 事件的处理程序,您可能会实际上能够首先到达它,甚至在任何 silverlight 控件之前完全处理它。我认为这是拦截 CTRL+V 最简单的方法,但我还没有测试过。
原始答案
您应该使用System.Windows.Clipboard 类。
剪贴板
剪贴板上的文本
指示是否剪贴板
当前包含文本
EDIT
To capture the CTRL+V keypress globally in your silverlight application, is fraught with difficulty. Events start at the child elements and bubble down to the parent controls, so simply handling KeyDown on your root UIElement will not work. Any text input control will first get the event and smother it (by setting Handled to true on the event args.) I think that if you use the DOM bridge and subscribe a handler to the browser KeyDown event for the silverlight element itself that you may actually be able to get to it first, and even handle it completely before any silverlight controls can. I think that would be the easiest way to intercept CTRL+V, but I have not tested it.
Original Answer
You should use the System.Windows.Clipboard class.
the clipboard
text on the clipboard
which indicates whether the clipboard
currently contains text