我正在开发Silverlight 5中的一个项目,我几个月前在WPF中实现了这个项目。我想“嗯,我会在几天内移植它......”。错了:))
对我的问题: 我的窗口上有一个列表框和2-3个画布元素。列表框包含一些字符串,我想将其拖动到Canvas并将其作为标签/文本框/面板或简单地放在UIElement中。另外我想在画布上移动UIElements或将其移动到另一个画布。 在WPF中我没有问题。 我在最近4天寻找一个简单/好的解决方案,但我发现没有什么可用的。
是的,我知道Silverlight Toolkit有DropTargets(ListBox,TreeView等)但可以编写自定义targt吗?一个CanvasDropTarget或类似的东西?或者是否可以使用PanelDragDropTarget来解决这个问题?
提前谢谢, 最好的问候修改
我找到了一个似乎是我的解决方案的良好开端的线程
所以,我找到了解决方案。我没想到那么简单。我刚用一个PanelDragDropTarget包围了一个Canvas,它起作用了。
<toolkit:PanelDragDropTarget AllowDrop="True" AllowedSourceEffects="All" Height="251" HorizontalAlignment="Left" Margin="26,27,0,0" Name="panelDragDropTarget1" VerticalAlignment="Top" Width="302" Grid.Column="1">
<Canvas Name="canvas1" AllowDrop="True" Background="Green" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="249" Width="308"></Canvas>
</toolkit:PanelDragDropTarget>
以及事件:
panelDragDropTarget1.Drop += new Microsoft.Windows.DragEventHandler(panelDragDropTarget1_Drop);
panelDragDropTarget1.ItemDragStarting += new EventHandler<ItemDragEventArgs>(panelDragDropTarget1_ItemDragStarting);
你可以处理它。