为线的动画做扩展准备

This commit is contained in:
艾竹
2023-04-29 15:29:22 +08:00
parent 7d8b19e4e0
commit f4268b9fc2
23 changed files with 397 additions and 120 deletions

View File

@@ -24,7 +24,7 @@ namespace AIStudio.Wpf.DiagramDesigner
{
ColorItem = new ColorItem() { LineColor = new ColorObjectItem(), FillColor = new ColorObjectItem() };
FontItem = new FontItem();
SharpItem = new SharpItem() { SourceMarker = new LinkMarkerItem(), SinkMarker = new LinkMarkerItem() };
SharpItem = new SharpItem() { SourceMarker = new SharpPathItem(), SinkMarker = new SharpPathItem() };
}
public SelectableItemBase(SelectableViewModelBase viewmodel)
@@ -37,8 +37,9 @@ namespace AIStudio.Wpf.DiagramDesigner
this.Name = viewmodel.Name;
ColorItem = CopyHelper.Mapper<ColorItem>(viewmodel.ColorViewModel);
FontItem = CopyHelper.Mapper<FontItem, IFontViewModel>(viewmodel.FontViewModel);
FontItem = CopyHelper.Mapper<FontItem>(viewmodel.FontViewModel);
SharpItem = CopyHelper.Mapper<SharpItem>(viewmodel.ShapeViewModel);
AnimationItem = CopyHelper.Mapper<AnimationItem>(viewmodel.AnimationViewModel);
}
[XmlAttribute]
@@ -94,6 +95,12 @@ namespace AIStudio.Wpf.DiagramDesigner
{
get; set;
}
[XmlElement]
public AnimationItem AnimationItem
{
get; set;
}
}
[XmlInclude(typeof(ColorItem))]
@@ -171,18 +178,7 @@ namespace AIStudio.Wpf.DiagramDesigner
{
get; set;
}
[XmlAttribute]
public LineAnimation LineAnimation
{
get; set;
}
[XmlAttribute]
public double LineAnimationDuration
{
get; set;
}
public event PropertyChangedEventHandler PropertyChanged;
}
@@ -190,18 +186,18 @@ namespace AIStudio.Wpf.DiagramDesigner
public class SharpItem : IShapeViewModel
{
[XmlIgnore]
public ILinkMarker SourceMarker
public ISharpPath SourceMarker
{
get; set;
}
[JsonIgnore]
[XmlElement("SourceMarker")]
public LinkMarkerItem XmlSourceMarker
public SharpPathItem XmlSourceMarker
{
get
{
return SourceMarker as LinkMarkerItem;
return SourceMarker as SharpPathItem;
}
set
{
@@ -210,18 +206,18 @@ namespace AIStudio.Wpf.DiagramDesigner
}
[XmlIgnore]
public ILinkMarker SinkMarker
public ISharpPath SinkMarker
{
get; set;
}
[JsonIgnore]
[XmlElement("SinkMarker")]
public LinkMarkerItem XmlSinkMarker
public SharpPathItem XmlSinkMarker
{
get
{
return SinkMarker as LinkMarkerItem;
return SinkMarker as SharpPathItem;
}
set
{
@@ -273,7 +269,7 @@ namespace AIStudio.Wpf.DiagramDesigner
}
[JsonIgnore]
[XmlElement("FontColor")]
[XmlElement("Color")]
public string XmlFontColor
{
get
@@ -419,6 +415,62 @@ namespace AIStudio.Wpf.DiagramDesigner
public event PropertyChangedEventHandler PropertyChanged;
}
[XmlInclude(typeof(AnimationItem))]
public class AnimationItem : IAnimationViewModel
{
[XmlAttribute]
public LineAnimation LineAnimation
{
get; set;
}
[XmlAttribute]
public double Duration
{
get; set;
}
[XmlIgnore]
public Color Color
{
get; set;
}
[JsonIgnore]
[XmlElement("Color")]
public string XmlColor
{
get
{
return SerializeHelper.SerializeColor(Color);
}
set
{
Color = SerializeHelper.DeserializeColor(value);
}
}
[XmlAttribute]
public string Path
{
get; set;
}
[XmlAttribute]
public double Width
{
get; set;
}
[XmlAttribute]
public double Height
{
get; set;
}
public event PropertyChangedEventHandler PropertyChanged;
}
public class SerializeHelper
{
public static string SerializeColor(Color color)
@@ -798,7 +850,7 @@ namespace AIStudio.Wpf.DiagramDesigner
}
public class LinkMarkerItem : ILinkMarker
public class SharpPathItem : ISharpPath
{
[XmlAttribute]
public string Path