动画demo完成

This commit is contained in:
艾竹
2023-01-27 14:54:03 +08:00
parent 64ea56f01e
commit 72e3efb052
81 changed files with 1211 additions and 503 deletions

View File

@@ -20,34 +20,38 @@ namespace AIStudio.Wpf.DiagramDesigner
}
}
public SelectableViewModelBase()
public SelectableViewModelBase() : this(null)
{
Init();
}
public SelectableViewModelBase(IDiagramViewModel root)
{
Init(root);
(FontViewModel as FontViewModel).PropertyChanged += FontViewModel_PropertyChanged;
}
public SelectableViewModelBase(IDiagramViewModel root, SelectableItemBase designer)
{
Init();
LoadDesignerItemViewModel(root, designer);
Init(root);
LoadDesignerItemViewModel(designer);
(FontViewModel as FontViewModel).PropertyChanged += FontViewModel_PropertyChanged;
}
public SelectableViewModelBase(IDiagramViewModel root, SerializableItem serializableItem, string serializableType)
{
Init();
Init(root);
SelectableItemBase obj = SerializeHelper.DeserializeObject(serializableItem.SerializableTypeName, serializableItem.SerializableString, serializableType);
LoadDesignerItemViewModel(root, obj);
LoadDesignerItemViewModel(obj);
(FontViewModel as FontViewModel).PropertyChanged += FontViewModel_PropertyChanged;
}
}
public virtual SerializableItem ToSerializableItem(string serializableType)
{
var obj = GetSerializableObject();
if (obj != null)
{
return new SerializableItem() { ModelTypeName = this.GetType().FullName, SerializableTypeName = obj.GetType().FullName, SerializableString = SerializeHelper.SerializeObject(obj, serializableType) };
return new SerializableItem() { ModelTypeName = this.GetType().FullName, SerializableTypeName = obj.GetType().FullName, SerializableString = SerializeHelper.SerializeObject(obj, serializableType) };
}
else
{
@@ -60,8 +64,10 @@ namespace AIStudio.Wpf.DiagramDesigner
return null;
}
protected virtual void Init()
protected virtual void Init(IDiagramViewModel root)
{
Root = root;
if (Root?.ColorViewModel != null)
{
this.ColorViewModel = CopyHelper.Mapper(Root.ColorViewModel);
@@ -92,10 +98,8 @@ namespace AIStudio.Wpf.DiagramDesigner
LockObjectViewModel = new LockObjectViewModel();
}
protected virtual void LoadDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designerbase)
protected virtual void LoadDesignerItemViewModel(SelectableItemBase designerbase)
{
this.Root = root;
this.Id = designerbase.Id;
this.ParentId = designerbase.ParentId;
this.IsGroup = designerbase.IsGroup;
@@ -211,7 +215,7 @@ namespace AIStudio.Wpf.DiagramDesigner
return _isHitTestVisible;
}
set
{
{
if (SetProperty(ref _isHitTestVisible, value))
{
RaisePropertyChanged("IsReadOnly");