offset修复一半

This commit is contained in:
艾竹
2023-03-28 23:16:56 +08:00
parent 72da084f15
commit b4d7f13111
10 changed files with 139 additions and 108 deletions

View File

@@ -162,7 +162,7 @@ namespace AIStudio.Wpf.Mind.ViewModels
{
get
{
return GetLevel1Node();
return GetLevel0Node();
}
}
@@ -242,11 +242,19 @@ namespace AIStudio.Wpf.Mind.ViewModels
get; set;
}
public PointBase? DesiredPosition
public PointBase DesiredPosition
{
get; set;
}
public PointBase DesiredMiddlePosition
{
get
{
return new PointBase(this.DesiredPosition.X + ItemWidth / 2, this.DesiredPosition.Y + ItemHeight / 2);
}
}
public PointBase Offset
{
get; set;
@@ -463,6 +471,7 @@ namespace AIStudio.Wpf.Mind.ViewModels
}
this.Parent = parent;
this.ParentId = parent?.Id ?? Guid.Empty;
this.Offset = parent?.Offset ?? new PointBase();
this.InitLayout(true);//因为节点的层级不同的样式所以需要Parent确定后才能初始化
this.InitConnectLayout();
@@ -520,7 +529,7 @@ namespace AIStudio.Wpf.Mind.ViewModels
#endregion
private void Item_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
if (GetLevel1Node()?.LayoutUpdating == true) return;
if (GetLevel0Node()?.LayoutUpdating == true) return;
switch (e.PropertyName)
{
@@ -529,6 +538,7 @@ namespace AIStudio.Wpf.Mind.ViewModels
if (e is ValuePropertyChangedEventArgs valuePropertyChangedEventArgs)
{
UpdateOffsetX((double)valuePropertyChangedEventArgs.OldValue, (double)valuePropertyChangedEventArgs.NewValue);
Console.WriteLine((sender as MindNode).Text);
}
break;
}
@@ -615,7 +625,7 @@ namespace AIStudio.Wpf.Mind.ViewModels
IsSelected = selected;
}
#region
public MindNode GetLevel1Node()
public MindNode GetLevel0Node()
{
var node = this;
while (node.Parent is MindNode mindNode)
@@ -625,7 +635,7 @@ namespace AIStudio.Wpf.Mind.ViewModels
return node;
}
public MindNode GetLevel2Node()
public MindNode GetLevel1Node()
{
var node = this;
while (node.Parent is MindNode mindNode && mindNode.NodeLevel == 1)
@@ -673,7 +683,7 @@ namespace AIStudio.Wpf.Mind.ViewModels
public void LayoutUpdated()
{
MindLayout?.LayoutUpdated(GetLevel1Node());
MindLayout?.LayoutUpdated(GetLevel0Node());
}
#endregion