Silverlight 3:如何实现文本块复制/粘贴功能?
Silverlight非常棒,我的大多数应用程序用户都对Silverlight给予了积极的反馈。但是,如果没有复制/粘贴功能,一些用户将无法生存。它们通常用于复制/粘贴HTML页面提供的现成功能 如何实现这样的上下文菜单以及复制/粘贴功能Silverlight 3:如何实现文本块复制/粘贴功能?,silverlight,Silverlight,Silverlight非常棒,我的大多数应用程序用户都对Silverlight给予了积极的反馈。但是,如果没有复制/粘贴功能,一些用户将无法生存。它们通常用于复制/粘贴HTML页面提供的现成功能 如何实现这样的上下文菜单以及复制/粘贴功能 PS:Windows only解决方案也不错。除了使用IsReadOnly=true的TextBox之外,您将很难在文本块中模拟选择和复制/粘贴。我会确定他们最希望复制/粘贴的区域,并使用文本框。您甚至可以删除边框并制作一个透明的背景,它看起来应该与相邻的Te
PS:Windows only解决方案也不错。除了使用IsReadOnly=true的
TextBox
之外,您将很难在文本块中模拟选择和复制/粘贴。我会确定他们最希望复制/粘贴的区域,并使用文本框。您甚至可以删除边框并制作一个透明的背景,它看起来应该与相邻的TextBlock几乎相同
如果您这样做,那么您将获得TextBox提供的选择和复制功能,它可以跨浏览器工作
否则,您将需要通过浏览器的DOM将内容放到剪贴板上,这将是一个痛苦,因为跨浏览器的问题。Silverlight 4添加了一个测试版,如果您能够使用测试版开始开发。这个Codeplex上的开源项目包含了一个演示,它可以实现这一点以及更多功能:
正如Josh所回答的,将文本框的样式设置为类似文本块的样式。在复制和粘贴方面:
假设用户不满足于只按CTRL+C、CTRL+X或CTRL+V键-您现在可以在Silverlight 4中访问剪贴板:
string content = Clipboard.GetText();
Clipboard.SetText("hello world");
上下文菜单可以以多种方式完成,在Silverlight 4中,它实际上是跨浏览器而非IE的适当支持。您可以使用弹出窗口
或子窗口
来完成,也可以使用以下窗口中的一个:
@Josh非常感谢您的解决方案。有没有办法也有关联菜单?