自定义group完成

This commit is contained in:
艾竹
2023-02-02 23:00:36 +08:00
parent 527dbd98e4
commit 397ebcfac2
11 changed files with 523 additions and 68 deletions

View File

@@ -364,7 +364,7 @@ namespace AIStudio.Wpf.DiagramDesigner
{
SetProperty(ref _cellVerticalAlignment, value);
}
}
}
private bool _isEditName;
[Browsable(false)]
@@ -1701,9 +1701,19 @@ namespace AIStudio.Wpf.DiagramDesigner
private void ExecuteGroupCommand(object parameter)
{
List<DesignerItemViewModelBase> items;
GroupDesignerItemViewModel groupItem = null;
if (parameter is IEnumerable<DesignerItemViewModelBase> para)
{
items = para.ToList();
if (para.FirstOrDefault() is GroupDesignerItemViewModel groupDesignerItemViewModel && groupDesignerItemViewModel.Custom)
{
groupDesignerItemViewModel.Custom = false;
groupItem = groupDesignerItemViewModel;
items = para.Skip(1).ToList();
}
else
{
items = para.ToList();
}
}
else
{
@@ -1712,7 +1722,10 @@ namespace AIStudio.Wpf.DiagramDesigner
RectangleBase rect = GetBoundingRectangle(items);
GroupDesignerItemViewModel groupItem = new GroupDesignerItemViewModel();
if (groupItem == null)
{
groupItem = new GroupDesignerItemViewModel();
}
groupItem.IsGroup = true;
groupItem.ItemWidth = rect.Width;
groupItem.ItemHeight = rect.Height;

View File

@@ -4,6 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Models;
namespace AIStudio.Wpf.DiagramDesigner
{
@@ -19,6 +20,16 @@ namespace AIStudio.Wpf.DiagramDesigner
}
public GroupDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
{
}
public GroupDesignerItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
protected override void Init(IDiagramViewModel root)
{
base.Init(root);
@@ -34,5 +45,14 @@ namespace AIStudio.Wpf.DiagramDesigner
protected override void ExecuteEditCommand(object param)
{
}
/// <summary>
/// 打标记使用
/// </summary>
public bool Custom
{
get;set;
}
}
}