Я работаю над проектом в 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);
вы можете справиться с этим.