2010-03-03 92 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