Перетащите из Silverlight в WPF - PullRequest
2 голосов
/ 11 мая 2010

Мне интересно, смог ли кто-нибудь перетащить какой-либо элемент (скажем, изображение с идентификатором) в silverlight и поместить его в список в WPF.

Если у вас есть, пожалуйста, помогите;)

Спасибо, S

Ответы [ 3 ]

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

Перетаскивание в приложение Silverlight из других поверхностей вне приложения Silverlight доступно только в Silverlight 4 и ограничено полезной нагрузкой списка файлов.

Следовательно, единственная функция перетаскивания, которую вы можете достичь между приложением WPF и Silverlight, - это если вы инициируете операцию перетаскивания в приложении WPF и включаете стандартный список файлов как часть данных, прикрепленных к перетаскиванию.

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

Энтони и Тимор правы в своих ответах, но я постараюсь проявить изобретательность с некоторыми идеями здесь:

  • Если вы можете использовать те же бэкэнд-сервисы, возможно, когда начинается перетаскивание (MouseDown + MouseMove), вы можете отправить кусок XAML в сервис для хранения / кэширования контента, а когда перетаскивание заканчивается в другом приложении MouseEnter + MouseUp поверх цели перетаскивания), вы можете вызвать эту службу для удаления кэшированного содержимого
  • В Silverlight 4 у вас есть доступ в локальной файловой системе к папкам «Мои» пользователей. Возможно, вы сможете использовать временный файл и события перетаскивания start / drag end, описанные выше, для переноса фрагмента XAML из одного приложения в другое. См. http://timheuer.com/blog/archive/2009/11/18/whats-new-in-silverlight-4-complete-guide-new-features.aspx#localfiles
  • Если вы хотите перетащить текст, вы можете использовать буфер обмена. Поэтому, когда начинается перетаскивание, скопируйте текст в буфер обмена. Когда вы закончите перетаскивание в другом приложении, прочитайте из буфера обмена и добавьте содержимое к цели перетаскивания
0 голосов
/ 12 мая 2010

Я согласен с @AnthonyWJones. Silverlight не имеет метода System.Windows.DragDrop.DoDragDrop, который есть в WPF, поэтому вы не можете инициировать «настоящее» перетаскивание. Вы можете перетаскивать элементы управления в своем приложении, но невозможно выполнить то, что вы просите.

...