DraggingTool
DraggingTool用于用鼠标移动或复制所选部件.
继承自: DiagramTool
属性
public Dictionary<Part, Info> CopiedParts { get; set; }
value = draggingTool.CopiedParts
draggingTool.CopiedParts = value
获取或设置此工具复制的部件的收藏 。
public bool CopiesEffectiveCollection { get; set; }
value = draggingTool.CopiesEffectiveCollection
draggingTool.CopiesEffectiveCollection = value
获取或设定复制操作的扩展选择是复制还是仅被选中的部分 。
protected Part CurrentPart { get; set; }
value = draggingTool.CurrentPart
draggingTool.CurrentPart = value
获取或设置鼠标点所发现的部分 {}% StandardMouseSelect} 。
public bool DraggableLinks { get; set; }
value = draggingTool.DraggableLinks
draggingTool.DraggableLinks = value
获取或设定用户是否可以拖动单个链接,将其与连接的节点断开,并可能在链接被丢弃时将其连接到有效的端口.
protected Link DraggedLink { get; set; }
value = draggingTool.DraggedLink
draggingTool.DraggedLink = value
获取或设置DraggableLinks真实时可被拖放并重新连接的链接 。
public Dictionary<Part, Info> DraggedParts { get; set; }
value = draggingTool.DraggedParts
draggingTool.DraggedParts = value
获取或设置正在拖曳的部件的收藏 。
protected bool DragOutStarted { get; set; }
value = draggingTool.DragOutStarted
draggingTool.DragOutStarted = value
获取或设定是否已经由此工具启动潜在的外部拖放 。
protected Part DragOverPart { get; set; }
value = draggingTool.DragOverPart
draggingTool.DragOverPart = value
获取或设置一个部分, 而不是被拖动, 鼠标已经结束, 并适当设置其 & # # #IsDropOntoAccepted+# # 属性 。
public DragOverSnapArea DragOverSnapArea { get; set; }
value = draggingTool.DragOverSnapArea
draggingTool.DragOverSnapArea = value
获取或设定是否将任何部件拖入图表或任何部件,使其位置被断到网格点上。
public bool DropOntoEnabled { get; set; }
value = draggingTool.DropOntoEnabled
draggingTool.DropOntoEnabled = value
获取或设定固定部件是否在拖曳过程中临时设定其 IsDropOntoAccepted 属性为真 。
internal bool Dropped { get; set; }
value = draggingTool.Dropped
draggingTool.Dropped = value
获取或设定拖放开始后是否发生了下降 。
public string FromPortId { get; set; }
value = draggingTool.FromPortId
draggingTool.FromPortId = value
获取或设置当点时使用的端口标识符)由于DropOntoBehavior而创建了新链接,即AddsLinkFromNode,AddsLinkToNode,或SplicesIntoLink.
public EffectiveCollectionInclusions Inclusions { get; set; }
value = draggingTool.Inclusions
draggingTool.Inclusions = value
获取或设定移动或复制一个节点,也包含节点的所有子嗣及其后人,以及这些附加节点的链接.
public bool IsRealtime { get; set; }
value = draggingTool.IsRealtime
draggingTool.IsRealtime = value
获取或设定部件在拖曳过程中是否连续移动,或者如果一个简单的物体被拖曳,而部件实际上只移动到鼠标上。
public static DraggingTool Source { get; internal set; }
value = DraggingTool.Source
DraggingTool.Source = value
这是一个实验属性,它得到DraggingTool,它是模拟拖放的来源.
protected Point StartPoint { get; set; }
value = draggingTool.StartPoint
draggingTool.StartPoint = value
获取或设置鼠标点,从该点开始移动部件。
public string ToPortId { get; set; }
value = draggingTool.ToPortId
draggingTool.ToPortId = value
获取或设置当点时使用的端口标识符)由于DropOntoBehavior而创建了新链接,即AddsLinkFromNode,AddsLinkToNode,或SplicesIntoLink.
方法
public virtual IDataCollection AcceptData(IDataObject dataobj)
result = draggingTool.AcceptData(dataobj)
Convert an IDataObject into an IDataCollection.
- dataobj
- 以 IDataObject+++为单位, 通常为 DragEventArgs.Data++++++的值 。
返回值: 一张IDataCollection,图的模型可以复制
public override bool CanStart()
result = draggingTool.CanStart()
如果此图允许选择和移动/复制/拖动出局, 如果鼠标移动到足够远的地方是拖动而不是点击, 如果 FindDraggablePart 在鼠标下行点找到一个可选择的部分, 此工具可以运行 。
public virtual Dictionary<Part, Info> ComputeEffectiveCollection(IEnumerable<Part> parts)
result = draggingTool.ComputeEffectiveCollection(parts)
查找要移动或复制的节点和链接的实际收藏, 给定一个初始收藏 。
- parts
返回值: a 部件词典, 映射到拥有原位置的Informs
protected virtual Point ComputeFocusPoint(IEnumerable<Part> parts)
result = draggingTool.ComputeFocusPoint(parts)
确定外部拖曳的焦点点或热点。
- parts
- 正在拖曳的已复制的节点和链接
返回值: a 模型坐标中的点
protected virtual Point ComputeMove(Node n, Point newloc, Dictionary<Part, Info> draggedparts)
result = draggingTool.ComputeMove(n, newloc, draggedparts)
这种方法计算出一个节点的新位置,因为需要一个新的位置和拖曳部件的词典.
- n
- 正在移动的节点
- newloc
- 拟新建的节点位置,在模型坐标中
- draggedparts
- a 正在拖取的部件词典
返回值: 模型坐标中节点的新位置
protected virtual bool ConsiderDragOver(Point pt, Part p)
result = draggingTool.ConsiderDragOver(pt, p)
确定当前拖曳的选中项(DraggedParts 或 CopiedParts) 是否有效, 并根据其 DropOntoBehavior 的 DropOntoBehavior 投放到目标部分 。
- pt
- 通常为当前鼠标点, 在模型坐标中
- p
- 鼠标下选择位置的分数
protected virtual bool ConsiderSnapTo(Node moving, Point pt, Node snapper, Dictionary<Part, Info> draggedparts)
result = draggingTool.ConsiderSnapTo(moving, pt, snapper, draggedparts)
如果给定的节点能够控制给定的节点的移动,则这个上游是真实的.
- moving
- 正在拖取的节点
- pt
- 模型坐标中的点, 通常是当前鼠标点
- snapper
- 可能控制节点运动的节点
- draggedparts
- a 正在拖取的部件词典
返回值: 如果不是在DragOverSnapEnabled中, 则为真
protected virtual DragDropEffects DoDragDrop(IDataCollection data, DragDropEffects eff)
result = draggingTool.DoDragDrop(data, eff)
Call DragDrop.DoDragDrop.
- data
- 表示要拖取的数据
- eff
- 将此选项作为第三个参数传递到 DragDrop.DoDragDrop
返回值: 电话DragDrop.DoDragDrop的结果
public virtual void DoDragEnter(DragEventArgs e)
draggingTool.DoDragEnter(e)
Update the DragEventArgs.Effects.
- e
public virtual void DoDragLeave(DragEventArgs e)
draggingTool.DoDragLeave(e)
如果不允许跳出,请移除任何临时复制的部分。
- e
public virtual void DoDragOver(DragEventArgs e)
draggingTool.DoDragOver(e)
对于复制件或外部移动,为拖放数据创建并移动复制件部件.
- e
public virtual void DoGiveFeedback(GiveFeedbackEventArgs e)
draggingTool.DoGiveFeedback(e)
默认这没什么用
- e
public override void DoKeyDown(KeyEventArgs e)
draggingTool.DoKeyDown(e)
处理复制模式和移动模式之间的切换,因为控制键被按下或释放.
- e
public override void DoKeyUp(KeyEventArgs e)
draggingTool.DoKeyUp(e)
处理复制模式和移动模式之间的切换,因为控制键被按下或释放.
- e
public override void DoMouseMove()
draggingTool.DoMouseMove()
当用户移动鼠标时,移动CopiedParts或DraggedParts的收藏,这取决于MayCopy或MayMove是否属实.
public virtual void DoQueryContinueDrag(QueryContinueDragEventArgs e)
draggingTool.DoQueryContinueDrag(e)
如果用户点击了 ESBE 密钥, 请拨打 DoCancel 以中止此工具 。
- e
protected virtual void DragOver(Point pt, bool moving, bool copying)
draggingTool.DragOver(pt, moving, copying)
影响一些处于指定点以下的固定的未选对象,并考虑自动滚动.
- pt
- 通常为当前鼠标点, 在模型坐标中
- moving
- copying
protected virtual Part FindDraggablePart()
result = draggingTool.FindDraggablePart()
在鼠标下行点返回可选择和可移动/可复制部分。
返回值: 如果此时没有可选择的部分,或者CanMove和CanCopy都是虚假的,则无效.
public virtual bool IsValidLink(Node fromnode, Node tonode, Link relink)
result = draggingTool.IsValidLink(fromnode, tonode, relink)
这个上游被叫来决定一个节点是否可以被点重联.
- fromnode
- tonode
- relink
- 链接到连接
返回值: ),如果是无效的,或者如果提供了,是呼叫对象、对象或对象的结果。
public virtual bool IsValidMember(Group group, Node node)
result = draggingTool.IsValidMember(group, node)
要求这个上游用于确定是否可按点添加一个节点作为专家组成员.
- group
- 如果将节点添加为顶级节点, 则此选项可能无效 。
- node
- a 节点,可能另组
返回值: 调用对象的结果)
protected virtual FrameworkElement MakeDragImage(Rect bounds)
result = draggingTool.MakeDragImage(bounds)
创建 IsRealtime 假冒时被拖曳的部件的表示 。
- bounds
- DraggedParts在模型坐标上的边界
返回值: FrameworkElement
public virtual bool MayAcceptData(IDataObject dataobj)
result = draggingTool.MayAcceptData(dataobj)
决定一个 IDataObject 是否适合复制到这个图表的模型中 。
- dataobj
- 以 IDataObject+++为单位, 通常为 DragEventArgs.Data++++++的值 。
返回值: 默认情况下,此选项将检查数据对象是否在模型的DataFormat中拥有数据,或者在模型的GetNodeType中拥有数据.
protected virtual bool MayCopy()
result = draggingTool.MayCopy()
当视图允许对象被复制并被插入时,这个上游是真实的,而图中选择的一些对象是可复制的,用户正在按住控制键.
protected virtual bool MayCopyExternal(DragEventArgs e)
result = draggingTool.MayCopyExternal(e)
如果用户可以在外部拖放上复制所选内容,则此上游是真实的.
- e
返回值: AllowedEffects 不允许复制。 Shift 键修改器应用(尝试需要移动) 则不正确。 如果图 IsReadOnly 或者不是 AllowInsert 则不正确。 如果拖放开始于此控件, 拖放则不正确。 如果模型无法修改, 拖放数据则不正确。 如果模型没有拖放数据, 则不正确。 否则是真实的 。
protected virtual bool MayCopyInternal(DragEventArgs e)
result = draggingTool.MayCopyInternal(e)
如果用户可以在内部拖放上复制选中内容, 此上游是真实的 。
- e
返回值: AllowedEffects 不允许复制。 Shift 键修改器应用(尝试需要移动) 的假。 图表 IsReadOnly 或 不使用 AllowInsert 。 如果拖放来自另一个控制, 假的。 如果模型无法修改, 假的。 否则是真实的 。
protected virtual bool MayMove()
result = draggingTool.MayMove()
当视图允许对象被移动时,这个上方是真实的,而"选择"中的一些对象是可移动的.
protected virtual bool MayMoveExternal(DragEventArgs e)
result = draggingTool.MayMoveExternal(e)
如果用户可以在外部拖放上移动选择,则此上游是真实的。
- e
返回值: AllowedEffects 不允许移动是虚假的。 Control 密钥修改器(尝试要求复制) 是不真实的。 如果图 IsReadOnly 或图 AllowInsert 或图中不包含 AllowInsert 。 如果拖放开始于此控制, 则不真实 。 如果模型无法修改, 则不真实 。 如果模型没有拖放数据, 则不真实 。 否则是真实的 。
protected virtual bool MayMoveInternal(DragEventArgs e)
result = draggingTool.MayMoveInternal(e)
如果用户可以在内部拖放上移动选择,则此上游是真实的。
- e
返回值: AllowedEffects 不允许移动, 如果应用控制键修改器(试图要求复制), 则不正确 。 如果图 IsReadOnly 或图 AllowMove 则不正确 。 如果拖放来自另一个控制, 则不正确 。 否则是真实的 。
public virtual void MoveParts(Dictionary<Part, Info> parts, Point offset)
draggingTool.MoveParts(parts, offset)
将一组部件由给定的平分移动。
- parts
- a 部分词典,已映射到包含节点原位置的 Info值
- offset
- a 模型坐标中的点值
protected virtual Point SnapTo(Node moving, Point pt, Node snapper, Dictionary<Part, Info> draggedparts)
result = draggingTool.SnapTo(moving, pt, snapper, draggedparts)
计算一个节点的新位置, 给另一个控制其移动的节点。
- moving
- 正在拖取的节点
- pt
- 将节点拖入的模型坐标点
- snapper
- 节点,一般是一个网格,它正在控制拖曳的抓取
- draggedparts
- a 正在拖取的部件词典
返回值: 一个新的节点位置, 在模型坐标中
protected override void StandardMouseSelect()
draggingTool.StandardMouseSelect()
控制修改器不能取消选择已经选中的部分 。
字段
public static readonly DependencyProperty CopiesEffectiveCollectionProperty
value = DraggingTool.CopiesEffectiveCollectionProperty
确定CopiesEffectiveCollection的受抚养财产。
public static readonly DependencyProperty DraggableLinksProperty
value = DraggingTool.DraggableLinksProperty
确定DraggableLinks的受抚养财产。
public static readonly DependencyProperty DragOverSnapAreaProperty
value = DraggingTool.DragOverSnapAreaProperty
确定DragOverSnapArea的受抚养财产。
public static readonly DependencyProperty DropOntoEnabledProperty
value = DraggingTool.DropOntoEnabledProperty
确定DropOntoEnabled的受抚养财产。
public static readonly DependencyProperty FromPortIdProperty
value = DraggingTool.FromPortIdProperty
确定FromPortId的受抚养财产。
public static readonly DependencyProperty InclusionsProperty
value = DraggingTool.InclusionsProperty
确定包含依赖的财产。
public static readonly DependencyProperty IsRealtimeProperty
value = DraggingTool.IsRealtimeProperty
确定IsRealtime的受抚养财产。
public static readonly DependencyProperty ToPortIdProperty
value = DraggingTool.ToPortIdProperty
确定ToPortId的受抚养财产。