繁体   English   中英

从树形视图中拖动图像,并拖放到WPF中的画布示例中

[英]Drag an image from a treeview and drop on canvas example in WPF

是的,我已经反复搜索过该主题,并阅读了许多篇幅太广或太精确的文章。 是的,我知道这是Stackoverflow,所以我已经准备好提出过时的评论,不满意和普遍滥用。 而且,是的,我实际上在2011年写了一些与我需要的东西非常相似的东西,但是从那以后我经历了一年的化学治疗,而我的记忆已不再是以前。

我所拥有的是一个称为OOB的树视图和一个名为UnitLayerCanvas的画布: 在此处输入图片说明 我想单击树视图OOB中的一个节点,使用与该节点关联的图像-我相信它被称为“装饰者”-将其拖到右侧的画布UnitLayerCanvas上并将其拖放。 我需要知道在树形视图OOB中单击了哪个节点,以及该节点在画布UnitLayerCanvas上的放置位置(X,Y)。 而已。

有人可以指导我使用C#的示例来说明此过程吗? 我已经看到了很多涉及树视图到树视图拖放的示例,而这不是我所需要的。


更新

我的旧代码工作到可以识别被单击的Treeview中的节点的程度。 我现在正在与装饰代码搏斗。

另一个更新

得到装饰工作。 现在只是下降。 但是,严重的是,这比需要的难度大20倍。

使用CNuts注释,我会给您一个想法

您必须有一个包含该项目本身及其位置x和y的对象。然后在地图上,您应该具有这些项目的集合,然后:

public class MapItem
{
    public object Item {get;set;}
    public int X {get;set;}
    public int Y {get;set;}
}
List<MapItem> MapItems {get;set;}

因此,现在您必须使用MouseButtonEventArgs e (鼠标事件)来获取鼠标位置

例:

Point _startPoint = e.GetPosition((StackPanel)sender);

然后

MapItem mapitem = new MapItem { X = _startPoint.X, Y = _startPoint.Y, Item = YourItem }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM