修正「ActionViewer」的拖放装饰器逻辑
This commit is contained in:
@@ -734,7 +734,7 @@ namespace Deedy.Activity
|
|||||||
{
|
{
|
||||||
this.IsDragging = true;
|
this.IsDragging = true;
|
||||||
ToolTipService.SetIsEnabled(this, false);
|
ToolTipService.SetIsEnabled(this, false);
|
||||||
|
//TODO:执行拖放校验并设置「_CanDropInParent」与「_CanDropChild」两个临时控制字段
|
||||||
base.OnDragEnter(e);
|
base.OnDragEnter(e);
|
||||||
}
|
}
|
||||||
protected override void OnDragLeave(DragEventArgs e)
|
protected override void OnDragLeave(DragEventArgs e)
|
||||||
@@ -743,9 +743,9 @@ namespace Deedy.Activity
|
|||||||
|
|
||||||
base.OnDragLeave(e);
|
base.OnDragLeave(e);
|
||||||
}
|
}
|
||||||
protected internal bool _CanDropInParent = false;
|
protected internal bool _CanDropInParent = false; // 通过组装校验逻辑设置此字段
|
||||||
protected internal bool _CanDropChild = false;
|
protected internal bool _CanDropChild = false; // 通过组装校验逻辑设置此字段
|
||||||
protected internal DropPlacement _DropPlacement = DropPlacement.Uncertain;
|
protected internal DropPlacement _DropPlacement = DropPlacement.Uncertain; // 用于最终放置逻辑
|
||||||
protected override void OnDragOver(DragEventArgs e)
|
protected override void OnDragOver(DragEventArgs e)
|
||||||
{
|
{
|
||||||
//HACK:这里要考虑父容器的布局方向
|
//HACK:这里要考虑父容器的布局方向
|
||||||
@@ -760,12 +760,12 @@ namespace Deedy.Activity
|
|||||||
if (this._CanDropInParent && (currentPoint.Y < 10 || currentPoint.Y < 10))
|
if (this._CanDropInParent && (currentPoint.Y < 10 || currentPoint.Y < 10))
|
||||||
{
|
{
|
||||||
this._DropPlacement = DropPlacement.BeforeMe;
|
this._DropPlacement = DropPlacement.BeforeMe;
|
||||||
this.UpdateDragAdorner(this._DropPlacement);
|
this.UpdateDragAdorner(this._DropPlacement, (this.ActionElement?.ParentElement as ICombinedElement)?.Direction);
|
||||||
}
|
}
|
||||||
else if (this._CanDropInParent && (hitElement.ActualHeight - currentPoint.Y < 10 || hitElement.ActualWidth - currentPoint.X < 10))
|
else if (this._CanDropInParent && (hitElement.ActualHeight - currentPoint.Y < 10 || hitElement.ActualWidth - currentPoint.X < 10))
|
||||||
{
|
{
|
||||||
this._DropPlacement = DropPlacement.BehindMe;
|
this._DropPlacement = DropPlacement.BehindMe;
|
||||||
this.UpdateDragAdorner(this._DropPlacement);
|
this.UpdateDragAdorner(this._DropPlacement, (this.ActionElement?.ParentElement as ICombinedElement)?.Direction);
|
||||||
}
|
}
|
||||||
else if (this._CanDropChild)
|
else if (this._CanDropChild)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user