Функция перетаскивания для Canvas в Silverlight 5 - PullRequest
1 голос
/ 10 января 2012

Я работаю над проектом в Silverlight 5, который я реализовал в WPF несколько месяцев назад.Я подумал: "Да, я перенесу его через несколько дней ...".Неправильно:)

К моей проблеме: у меня есть окно со списком и 2-3 элемента canvas в окне.Список содержит некоторую строку, которую я хочу перетащить на холст и поместить туда как метку / текстовое поле / панель или просто как UIElement.Кроме того, я хочу переместить элементы UIE на холсте или переместить его на другой холст.В WPF у меня не было проблем сделать это.Последние 4 дня я искал простое / хорошее решение, но ничего полезного не нашел.

Да, я знаю, что в Silverlight Toolkit есть DropTargets (ListBox, TreeView и т. Д.), Но можно ли написатьпользовательский targt?CanvasDropTarget или что-то в этом роде?Или можно использовать PanelDragDropTarget для такой проблемы?

заранее спасибо, с наилучшими пожеланиями

Редактировать:

Я нашел тему, котораякажется, хорошее начало для моего решения

Итак, я нашел решение.Я не думал, что это так просто.Я просто окружил Canvas PanelDragDropTarget, и он работал.

    <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);

вы можете справиться с этим.

...