MouseDragElementBehavior
源代码:MouseDragElementBehavior.cs
顾名思义,这个行为能够让一个控件可以被鼠标按住拖动。它拥有以下几个可用的属性或事件:
X和Y:表示当前控件相对于其父容器的偏移位置(初始均为NaN)ConstrainToParentBounds:一个布尔值,表示是否将拖动限制在父容器的边界内(默认值为false)DragBegun、Dragging和DragFinished:分别在拖动开始、拖动过程中和拖动完成时触发的事件,都是MouseEventHandler类型
它的用法非常简单,只需要将它添加到想要被拖动的控件上即可,比如一个画板上的正方形:
被拖动的控件不仅可以在 Canvas 上使用,也可以在其他类型的容器中使用,比如 Grid 等。因为这个行为并不是通过修改诸如 Canvas.Top 等属性的值,而是仅借助 RenderTransform 来实现拖动效果的。但这可能也是一个弊端,因为它会导致控件实际位置的计算变得复杂一些。