mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-04-16 22:26:36 +08:00
Revert "Revert "block 可以拖拽到内部,还有少量问题待解决""
This reverts commit fcd7beb193.
This commit is contained in:
@@ -95,13 +95,13 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls
|
||||
{
|
||||
case VerticalAlignment.Bottom:
|
||||
dragDeltaVertical = Math.Min(-e.VerticalChange, minDeltaVertical);
|
||||
scale = (item.ItemHeight - dragDeltaVertical) / item.ItemHeight;
|
||||
scale = (item.GetItemHeight() - dragDeltaVertical) / item.GetItemHeight();
|
||||
DragBottom(scale, item, DiagramViewModel.SelectionService);
|
||||
break;
|
||||
case VerticalAlignment.Top:
|
||||
double top = item.Top;
|
||||
dragDeltaVertical = Math.Min(Math.Max(-minTop, e.VerticalChange), minDeltaVertical);
|
||||
scale = (item.ItemHeight - dragDeltaVertical) / item.ItemHeight;
|
||||
scale = (item.GetItemHeight() - dragDeltaVertical) / item.GetItemHeight();
|
||||
DragTop(scale, item, DiagramViewModel.SelectionService);
|
||||
break;
|
||||
default:
|
||||
@@ -113,12 +113,12 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls
|
||||
case HorizontalAlignment.Left:
|
||||
double left = item.Left;
|
||||
dragDeltaHorizontal = Math.Min(Math.Max(-minLeft, e.HorizontalChange), minDeltaHorizontal);
|
||||
scale = (item.ItemWidth - dragDeltaHorizontal) / item.ItemWidth;
|
||||
scale = (item.GetItemWidth() - dragDeltaHorizontal) / item.GetItemWidth();
|
||||
DragLeft(scale, item, DiagramViewModel.SelectionService);
|
||||
break;
|
||||
case HorizontalAlignment.Right:
|
||||
dragDeltaHorizontal = Math.Min(-e.HorizontalChange, minDeltaHorizontal);
|
||||
scale = (item.ItemWidth - dragDeltaHorizontal) / item.ItemWidth;
|
||||
scale = (item.GetItemWidth() - dragDeltaHorizontal) / item.GetItemWidth();
|
||||
DragRight(scale, item, DiagramViewModel.SelectionService);
|
||||
break;
|
||||
default:
|
||||
@@ -137,26 +137,26 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls
|
||||
{
|
||||
IEnumerable<DesignerItemViewModelBase> groupItems = selectionService.GetGroupMembers(item, false).Cast<DesignerItemViewModelBase>();
|
||||
|
||||
double groupLeft = item.Left + item.ItemWidth;
|
||||
double groupLeft = item.Left + item.GetItemWidth();
|
||||
foreach (DesignerItemViewModelBase groupItem in groupItems)
|
||||
{
|
||||
double groupItemLeft = groupItem.Left;
|
||||
double delta = (groupLeft - groupItemLeft) * (scale - 1);
|
||||
groupItem.Left = groupItemLeft - delta;
|
||||
groupItem.ItemWidth = groupItem.ItemWidth * scale;
|
||||
groupItem.ItemWidth = groupItem.GetItemWidth() * scale;
|
||||
}
|
||||
}
|
||||
|
||||
private void DragTop(double scale, DesignerItemViewModelBase item, SelectionService selectionService)
|
||||
{
|
||||
IEnumerable<DesignerItemViewModelBase> groupItems = selectionService.GetGroupMembers(item, false).Cast<DesignerItemViewModelBase>();
|
||||
double groupBottom = item.Top + item.ItemHeight;
|
||||
double groupBottom = item.Top + item.GetItemHeight();
|
||||
foreach (DesignerItemViewModelBase groupItem in groupItems)
|
||||
{
|
||||
double groupItemTop = groupItem.Top;
|
||||
double delta = (groupBottom - groupItemTop) * (scale - 1);
|
||||
groupItem.Top = groupItemTop - delta;
|
||||
groupItem.ItemHeight = groupItem.ItemHeight * scale;
|
||||
groupItem.ItemHeight = groupItem.GetItemHeight() * scale;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -171,7 +171,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls
|
||||
double delta = (groupItemLeft - groupLeft) * (scale - 1);
|
||||
|
||||
groupItem.Left = groupItemLeft + delta;
|
||||
groupItem.ItemWidth = groupItem.ItemWidth * scale;
|
||||
groupItem.ItemWidth = groupItem.GetItemWidth() * scale;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -185,7 +185,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls
|
||||
double delta = (groupItemTop - groupTop) * (scale - 1);
|
||||
|
||||
groupItem.Top = groupItemTop + delta;
|
||||
groupItem.ItemHeight = groupItem.ItemHeight * scale;
|
||||
groupItem.ItemHeight = groupItem.GetItemHeight() * scale;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user