mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-04-21 17:06:35 +08:00
xx
This commit is contained in:
@@ -751,7 +751,6 @@ namespace AIStudio.Wpf.Mind.ViewModels
|
||||
List<MindNode> parents = new List<MindNode>();
|
||||
foreach (var item in items.OfType<MindNode>())
|
||||
{
|
||||
//item.DesiredPosition = new PointBase(item.DesiredPosition?.X ?? 0 + OffsetX, item.DesiredPosition?.Y ?? 0 + OffsetY);
|
||||
var parent = Items.OfType<MindNode>().FirstOrDefault(p => p.Id == item.ParentId);
|
||||
if (parent != null && !items.Contains(parent))
|
||||
{
|
||||
@@ -759,7 +758,7 @@ namespace AIStudio.Wpf.Mind.ViewModels
|
||||
}
|
||||
else if (item.ParentId == Guid.Empty)
|
||||
{
|
||||
item.Offset = new PointBase(OffsetX, OffsetX);
|
||||
//item.Offset = new PointBase(item.Offset.X - OffsetX, item.Offset.Y - OffsetY);
|
||||
parents.Add(item);
|
||||
item.InitLayout(false);
|
||||
}
|
||||
@@ -1145,12 +1144,15 @@ namespace AIStudio.Wpf.Mind.ViewModels
|
||||
|
||||
private void Move(MindNode rootitem, double? left, double? top)
|
||||
{
|
||||
|
||||
if (left == null)
|
||||
left = (PageSize.Width - rootitem.ItemWidth) / 2;
|
||||
if (top == null)
|
||||
top = (PageSize.Height - rootitem.ItemHeight) / 2;
|
||||
var offset = rootitem.Offset;
|
||||
rootitem.Left = left.Value;
|
||||
rootitem.Top = top.Value;
|
||||
rootitem.Offset = offset;
|
||||
rootitem?.LayoutUpdated();
|
||||
FitViewModel = new FitViewModel() { BoundingRect = rootitem.GetBounds() };
|
||||
}
|
||||
@@ -1354,7 +1356,7 @@ namespace AIStudio.Wpf.Mind.ViewModels
|
||||
item.IsSelected = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
@@ -108,7 +108,7 @@ namespace AIStudio.Wpf.Mind.ViewModels
|
||||
public void ThemeChange()
|
||||
{
|
||||
MindThemeHelper.ThemeChange(this, MindThemeModel);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void LoadDesignerItemViewModel(SelectableItemBase designerbase)
|
||||
{
|
||||
@@ -119,8 +119,22 @@ namespace AIStudio.Wpf.Mind.ViewModels
|
||||
Spacing = designer.Spacing;
|
||||
Offset = designer.Offset;
|
||||
IsExpanded = designer.IsExpanded;
|
||||
LinkInfo = new LinkInfo(designer.LinkInfoItem?.Url, designer.LinkInfoItem?.Text);
|
||||
ImageInfo = new ImageInfo(designer.ImageInfoItem?.Url, designer.ImageInfoItem?.Text);
|
||||
if (string.IsNullOrEmpty(designer.LinkInfoItem?.Url) && string.IsNullOrEmpty(designer.LinkInfoItem?.Text))
|
||||
{
|
||||
LinkInfo = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
LinkInfo = new LinkInfo(designer.LinkInfoItem?.Url, designer.LinkInfoItem?.Text);
|
||||
}
|
||||
if (string.IsNullOrEmpty(designer.ImageInfoItem?.Url) && string.IsNullOrEmpty(designer.ImageInfoItem?.Text))
|
||||
{
|
||||
ImageInfo = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
ImageInfo = new ImageInfo(designer.ImageInfoItem?.Url, designer.ImageInfoItem?.Text);
|
||||
}
|
||||
Remark = designer.Remark;
|
||||
Priority = designer.Priority;
|
||||
Rate = designer.Rate;
|
||||
@@ -235,44 +249,7 @@ namespace AIStudio.Wpf.Mind.ViewModels
|
||||
|
||||
public PointBase Offset
|
||||
{
|
||||
get
|
||||
{
|
||||
PointBase point;
|
||||
if (NodeLevel == 0)
|
||||
{
|
||||
if (DesiredPosition == null)
|
||||
{
|
||||
point = new PointBase();
|
||||
}
|
||||
else
|
||||
{
|
||||
point = new PointBase(Position.X - DesiredPosition.Value.X, Position.Y - DesiredPosition.Value.Y);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (DesiredPosition == null)
|
||||
{
|
||||
point = new PointBase();
|
||||
}
|
||||
else
|
||||
{
|
||||
point = new PointBase(Position.X - DesiredPosition.Value.X - RootNode.Offset.X, Position.Y - DesiredPosition.Value.Y - RootNode.Offset.Y);
|
||||
}
|
||||
}
|
||||
return point;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (NodeLevel == 0)
|
||||
{
|
||||
DesiredPosition = new PointBase(Position.X - value.X, Position.Y - value.Y);
|
||||
}
|
||||
else
|
||||
{
|
||||
DesiredPosition = new PointBase(Position.X - value.X - RootNode.Offset.X, Position.Y - value.Y - RootNode.Offset.Y);
|
||||
}
|
||||
}
|
||||
get; set;
|
||||
}
|
||||
|
||||
private ConnectorOrientation _connectorOrientation = ConnectorOrientation.Left;
|
||||
@@ -547,6 +524,22 @@ namespace AIStudio.Wpf.Mind.ViewModels
|
||||
|
||||
switch (e.PropertyName)
|
||||
{
|
||||
case nameof(Left):
|
||||
{
|
||||
if (e is ValuePropertyChangedEventArgs valuePropertyChangedEventArgs)
|
||||
{
|
||||
UpdateOffsetX((double)valuePropertyChangedEventArgs.OldValue, (double)valuePropertyChangedEventArgs.NewValue);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case nameof(Top):
|
||||
{
|
||||
if (e is ValuePropertyChangedEventArgs valuePropertyChangedEventArgs)
|
||||
{
|
||||
UpdateOffsetY((double)valuePropertyChangedEventArgs.OldValue, (double)valuePropertyChangedEventArgs.NewValue);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case nameof(IsExpanded):
|
||||
case nameof(ItemWidth):
|
||||
case nameof(ItemHeight):
|
||||
|
||||
Reference in New Issue
Block a user