Silverlight 3:如何实现Textblock复制/粘贴功能?

时间:2010-03-03 03:58:51

标签: silverlight

Silverlight非常棒,我的大多数应用程序用户都对Silverlight给出了积极的反馈。但是,如果没有复制/粘贴功能,某些用户将无法生存。它们非常习惯于复制/粘贴HTML页面提供的功能。

如何实现这样的上下文菜单以及复制/粘贴功能?

PS:Windows解决方案也很好。

3 个答案:

答案 0 :(得分:3)

除了使用TextBox与IsReadOnly = true之外,您还很难在TextBlock中模拟选择和复制/粘贴。我会确定他们希望复制/粘贴最多的区域并在那里使用TextBox。你甚至可以删除边框并制作透明背景,它看起来应该与相邻的TextBlock几乎相同。

如果您这样做,那么您将获得TextBox提供的选择和复制功能,并且它可以跨浏览器工作。

否则,您需要浏览浏览器的DOM以将内容放在剪贴板上,由于跨浏览器问题,这将是一个痛苦。如果您能够使用测试版开始开发,Silverlight 4会添加Clipboard API

答案 1 :(得分:1)

正如Josh所回答的那样,将TextBox设为TextBlock。在复制和粘贴方面:

假设用户不满足于 CTRL + C CTRL + X CTRL + V - 您现在可以访问Silverlight 4中的剪贴板:

string content = Clipboard.GetText();
Clipboard.SetText("hello world");

上下文菜单可以通过各种方式完成,而在Silverlight 4中,它实际上是跨浏览器而不仅仅是IE正确支持的。您可以使用PopupChildWindow来完成,或者只使用the Vectorlight library中的一个:

alt text http://www.vectorlight.net/documents/images/menu.gif

答案 2 :(得分:0)

这个关于Codeplex的开源项目包含一个演示,可以做到这一点以及更多:

http://sl4popupmenu.codeplex.com/