Просто скачал blend sdk и увидел, что Interaction.Behaviors доступен только для чтения, поэтому мое решение все равно не будет работать. Я постараюсь найти другое решение

тоящее время у меня возникают проблемы с использованием MouseDragElementsBehavior из Blend SDK при использовании ItemsControl и Custom Canvas. Мой пользовательский холст просто добавляет или удаляет MouseDragElement из его дочерних элементов в зависимости от свойства DependencyProperty. Это работало очень хорошо, когда я вручную добавлял Items к потомкам Canvas, но, похоже, сломалось при переходе к ItemsControl.

В настоящее время я использую следующий код 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>

Добавление поведения перетаскивания в метод Canvas.VisualChildrenChanged не позволяет перемещать вновь созданный объект, как раньше.

Нужно ли добавить поведение перетаскивания к чему-то другому, кроме ContentPresenter, который передается в VisualChildrenChanged или обеспечивает специальный стиль?

Ответы на вопрос(2)

Ваш ответ на вопрос