Silverlight非常棒,我的大多数应用程序用户都对Silverlight给出了积极的反馈。但是,如果没有复制/粘贴功能,某些用户将无法生存。它们非常习惯于复制/粘贴HTML页面提供的功能。
如何实现这样的上下文菜单以及复制/粘贴功能?
PS:Windows解决方案也很好。
答案 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正确支持的。您可以使用Popup
或ChildWindow
来完成,或者只使用the Vectorlight library中的一个:
alt text http://www.vectorlight.net/documents/images/menu.gif
答案 2 :(得分:0)
这个关于Codeplex的开源项目包含一个演示,可以做到这一点以及更多: