2010-03-03 86 views
3

Silverlight是真棒,我的大多数应用程序的用户是给有关Silverlight的积极反馈。但是,有些用户无法在没有复制/粘贴功能的情况下生活。它们非常适用于复制/粘贴HTML页面提供的功能。Silverlight 3:如何实现Textblock的复制/粘贴功能?

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

PS:仅适用于Windows的解决方案是没关系。

回答

3

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

如果你这样做,那么你会得到选择和复制文本框通过提供的功能,它可以跨浏览器。

否则,你将需要通过浏览器的DOM把东西放在剪贴板上,这将是因为跨浏览器的关注点痛。如果您能够使用beta版本开始开发,Silverlight 4会添加一个Clipboard API

+0

@Josh非常感谢您对您的解决方案。有什么方法可以获得上下文菜单吗? – funwithcoding 2010-03-03 15:30:48

1

由于乔希已经回答了,风格TextBox看起来像一个TextBlock。在复制和粘贴方面:

假设用户不满足于只是CTRL + CCTRL + XCTRL + 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