Silverlight 5中Canvas的拖放功能

时间:2012-01-10 11:03:22

标签: silverlight canvas drag-and-drop custom-controls

我正在开发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);

你可以处理它。

0 个答案:

没有答案