Silverlight 3: Как реализовать функцию копирования / вставки Textblock? - PullRequest
3 голосов
/ 03 марта 2010

Silverlight потрясающий, большинство пользователей моего приложения дают положительные отзывы о silverlight. Однако некоторые пользователи не могут жить без функции копирования / вставки. Они очень часто используются для копирования / вставки функциональности, предоставляемой HTML-страницей из коробки.

Как реализовать такое контекстное меню, а также функцию копирования / вставки?

PS: решение для Windows тоже подойдет.

Ответы [ 3 ]

3 голосов
/ 03 марта 2010

Помимо использования TextBox с IsReadOnly = true, вам будет довольно сложно попытаться смоделировать выделение и скопировать / вставить в TextBlock. Я бы определил области, которые они хотят скопировать / вставить больше всего, и использовать там TextBox. Вы даже можете удалить границу и сделать прозрачный фон, и он должен выглядеть почти так же, как у смежного TextBlock.

Если вы сделаете это, вы получите возможность выбора и копирования, предоставляемую TextBox, и она работает во всех браузерах.

В противном случае вам придется пройти через DOM браузера, чтобы поместить что-то в буфер обмена, и это будет проблемой из-за проблем с браузерами. Silverlight 4 добавляет API буфера обмена , если вы можете начать разработку с бета-версии.

1 голос
/ 25 мая 2010

Как ответил Джош, введите TextBox, чтобы оно выглядело как TextBlock. С точки зрения копирования и вставки:

Предполагая, что пользователи не довольствуются только CTRL + C , CTRL + X или CTRL + V - теперь вы можете получить доступ к буферу обмена в Silverlight 4:

string content = Clipboard.GetText();
Clipboard.SetText("hello world");

Контекстное меню может быть создано различными способами, и в Silverlight 4 оно фактически правильно поддерживается кросс-браузерным, а не просто IE. Вы можете сделать это с Popup или ChildWindow или просто использовать один из библиотеки Vectorlight :

альтернативный текст http://www.vectorlight.net/documents/images/menu.gif

0 голосов
/ 25 мая 2010

Этот проект с открытым исходным кодом на Codeplex содержит демонстрацию, которая делает именно это и многое другое:

http://sl4popupmenu.codeplex.com/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...