Перетащите выбранный якорный текст из окна браузера - PullRequest
1 голос
/ 24 августа 2010

Я выполняю операцию перетаскивания текста привязки, выбранного в окне браузера, в приложение, созданное в C #.

Рассмотрим эту ссылку

<a href="http://www.google.com">Google Me</a>

В случаеIE браузеры ...

Когда я выбираю текст привязки "Google Me" и помещаю его в свое приложение, текст отбрасывается как " Google Me ".

Inв случае Chrome, Firefox, Safari ....

При выполнении той же операции отбрасывается текст "http://www.google.com".

Я пытался сделать это в некоторых других приложенияхкак и в Notepad ++, Eclipse, там также происходило то же самое. В некоторых других приложениях, таких как Thunderbird, перетаскивание из IE было таким же, из других, отформатированная ссылка привязки удалялась.реализация операции перетаскивания, которая отличается в разных браузерах? Если нет, можно ли изменить реализацию перетаскивания в приложении, где отбрасывается текст?

Я начинающийв C # и понятия не имею, как операцией перетаскиванияРеализация реализована.Просто стало интересно с этим.

С уважением

1 Ответ

1 голос
/ 24 августа 2010

Когда вы перетаскиваете, исходное приложение предоставляет объект данных, и оно помещается в системный буфер обмена, чтобы целевое приложение (где произойдет отбрасывание) могло получить данные. Фактический формат данных контролируется исходным приложением и не может быть изменен. Для облегчения взаимодействия существует несколько известных форматов данных , и исходное приложение может выбрать поддержку нескольких форматов, помимо собственного формата данных. Таким образом, это обеспечит некоторое преобразование в поддерживаемый формат данных из собственного формата. Таким образом, в вашем случае вы, вероятно, запрашиваете формат текстовых данных, и исходное приложение выдаст либо текст ссылки, либо текст привязки в зависимости от его реализации. Попробуйте использовать формат html (e.Data.GetData(DataFormats.Html), и вы можете получить согласованные результаты.

Изменить: Чтобы ответить на другую часть вашего вопроса, многие целевые приложения, такие как различные редакторы, будут просматривать данные буфера обмена и запрашивать различные поддерживаемые ими форматы, и они будут выбирать самый богатый формат данных, который они поддерживают. Например, слово будет отдавать предпочтение rtf (форматированный текст) по сравнению с простым текстом и так далее. Некоторые приложения будут знать о собственных форматах некоторых популярных программ, чтобы они могли поддерживать перетаскивание из таких приложений (как функцию).

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