Silverlight是真棒,我的大多数应用程序的用户是给有关Silverlight的积极反馈。但是,有些用户无法在没有复制/粘贴功能的情况下生活。它们非常适用于复制/粘贴HTML页面提供的功能。Silverlight 3:如何实现Textblock的复制/粘贴功能?
我怎样才能实现这样的上下文菜单以及复制/粘贴功能?
PS:仅适用于Windows的解决方案是没关系。
Silverlight是真棒,我的大多数应用程序的用户是给有关Silverlight的积极反馈。但是,有些用户无法在没有复制/粘贴功能的情况下生活。它们非常适用于复制/粘贴HTML页面提供的功能。Silverlight 3:如何实现Textblock的复制/粘贴功能?
我怎样才能实现这样的上下文菜单以及复制/粘贴功能?
PS:仅适用于Windows的解决方案是没关系。
除了使用带有IsReadOnly = true的TextBox
,您将很难尝试模拟TextBlock
中的选择和复制/粘贴。我会确定他们希望复制/粘贴最多的区域并在那里使用TextBox。您甚至可以删除边框并制作透明背景,并且应该看起来与相邻的TextBlock几乎完全相同。
如果你这样做,那么你会得到选择和复制文本框通过提供的功能,它可以跨浏览器。
否则,你将需要通过浏览器的DOM把东西放在剪贴板上,这将是因为跨浏览器的关注点痛。如果您能够使用beta版本开始开发,Silverlight 4会添加一个Clipboard API。
Codeplex上这个开源项目包含一个演示是做到了这一点,还有更多:
由于乔希已经回答了,风格TextBox
看起来像一个TextBlock
。在复制和粘贴方面:
假设用户不满足于只是CTRL + C,CTRL + X或CTRL + V - 您现在可以访问剪贴板Silverlight 4中:
string content = Clipboard.GetText();
Clipboard.SetText("hello world");
上下文菜单可以以不同的方式来完成,而在Silverlight 4中它实际上是适当的支持跨浏览器,而不只是IE。你可以用Popup
或ChildWindow
或只使用一个从the Vectorlight library做到这一点:
alt text http://www.vectorlight.net/documents/images/menu.gif
@Josh非常感谢您对您的解决方案。有什么方法可以获得上下文菜单吗? – funwithcoding 2010-03-03 15:30:48