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