Utilizando MouseDragElementBehavior con ItemsControl y Canvas
Actualmente tengo un problema al usar MouseDragElementsBehavior del Blend SDK cuando uso un ItemsControl y un Custom Canvas. Mi lienzo personalizado simplemente agrega o elimina MouseDragElement de sus elementos secundarios dependiendo de una DependencyProperty. Esto funcionó bien cuando estaba agregando elementos manualmente a los elementos secundarios del lienzo, pero parece haberse roto al pasar a un control de elementos.
Actualmente estoy usando el siguiente código de ItemsControl:
<ItemsControl ItemsSource="{Binding Path=CanvasItems}">
<ItemsControl.DataContext>
<ViewModels:ViewModel/>
</ItemsControl.DataContext>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<my:CustomCanvas Background="Black" IsEditable="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=DataContext.CanEdit}" AllowDrop="{Binding RelativeSource={RelativeSource Self}, Path=IsEditable}" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
Agregar el comportamiento de arrastre en el método Canvas.VisualChildrenChanged no permite que el objeto recién creado se mueva como antes.
Necesito agregar el comportamiento de Arrastrar a algo diferente al ContentPresenter que se pasa a VisualChildrenChanged o proporcionar un estilo especial?