从Silverlight拖放到WPF

时间:2010-05-11 19:54:15

标签: wpf silverlight silverlight-3.0 drag-and-drop silverlight-4.0

我想知道是否有人能够在Silverlight中拖动一些项目(让我们说一个带有id的图像)并将其放入WPF的列表框中。

如果你有请求帮助;)

谢谢, 小号

3 个答案:

答案 0 :(得分:1)

从Silverlight应用程序之外的其他表面拖放到Silverlight应用程序仅在Silverlight 4中可用,并且仅限于文件列表有效负载。

因此,您可以在WPF应用程序和Silverlight之间实现的唯一拖放功能是,如果您在WPF应用程序中启动拖动操作并包含标准文件列表作为附加到拖动的数据的一部分。

答案 1 :(得分:0)

我同意@AnthonyWJones。 Silverlight没有WPF具有的System.Windows.DragDrop.DoDragDrop方法,因此您无法启动“真正的”拖放操作。你可以拖拽删除你的应用程序中的控件,但不可能做你要求的。

答案 2 :(得分:0)

Anthony和Timores的回答是正确的,但我会尝试在这里发表一些想法:

  • 如果您可以利用相同的后端服务,也许当拖动开始时(MouseDown + MouseMove)您可以将一大块XAML发送到服务以存储/缓存内容,以及当拖动在另一个应用程序上结束时( MouseEnter + MouseUp在放置目标上),您可以调用该服务来下载缓存的内容
  • 在Silverlight 4中,您可以在本地文件系统中访问用户“我的”文件夹。您可以使用临时文件和上面描述的拖动开始/拖动结束事件来将XAML块从一个应用程序转移到另一个应用程序。请参阅http://timheuer.com/blog/archive/2009/11/18/whats-new-in-silverlight-4-complete-guide-new-features.aspx#localfiles
  • 如果您想拖放文字,可以使用剪贴板。因此,当拖动开始时,将文本复制到剪贴板中。当您在其他应用程序中结束拖动时,请从剪贴板中读取并将内容添加到放置目标