我一直在使用项目控件构建可拖动的节点树,最后的障碍是节点的子节点,项目控件中的子节点由于某种原因无法单独拖动。根节点可以在那里拖动,因此拖动画布正在工作。
这是ui的图片,显示了根节点和连接在一起的子节点:
这是可视树,它显示子节点附加到可拖动画布:
代码本身是
<pnl:DragCanvas>
<ContentControl cal:View.Model="{Binding Root}"/>
<ContentControl cal:View.Model="{Binding Root}"/>
</pnl:DragCanvas>
<pnl:DragCanvas x:Name="CurrCanvas">
<ItemsControl ItemsSource="{Binding Children}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<pnl:DragCanvas IsItemsHost="True"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style TargetType="ContentPresenter">
<Setter Property="Canvas.Left" Value="{Binding Path=XPos}"/>
<Setter Property="Canvas.Top" Value="{Binding Path=YPos}"/>
</Style>
</ItemsControl.ItemContainerStyle>
<ItemsControl.ItemTemplate>
<DataTemplate>
<ContentControl cal:View.Model="{Binding}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</pnl:DragCanvas>
我不知道如何修复它,这真的很烦人!