使用物理尺寸进行设置

This commit is contained in:
艾竹
2023-02-11 23:51:48 +08:00
parent 59bfed341d
commit f99fd93b3f
13 changed files with 333 additions and 231 deletions

View File

@@ -4,6 +4,7 @@ using System.IO;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
using Newtonsoft.Json;
namespace AIStudio.Wpf.DiagramDesigner
{
@@ -27,14 +28,15 @@ namespace AIStudio.Wpf.DiagramDesigner
Orientation = viewmodel.Orientation;
}
[XmlAttribute]
[JsonProperty(PropertyName = "ConnectorWidth")]
[XmlAttribute("ConnectorWidth")]
public double PhysicalConnectorWidth
{
get; set;
}
[XmlAttribute]
[JsonProperty(PropertyName = "ConnectorHeight")]
[XmlAttribute("ConnectorHeight")]
public double PhysicalConnectorHeight
{
get; set;

View File

@@ -1,4 +1,5 @@
using AIStudio.Wpf.DiagramDesigner;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -33,13 +34,13 @@ namespace AIStudio.Wpf.DiagramDesigner
this.Reserve = reserve;
}
[XmlAttribute]
[XmlAttribute("Left")]
public double PhysicalLeft
{
get; set;
}
[XmlAttribute]
[XmlAttribute("Top")]
public double PhysicalTop
{
get; set;
@@ -69,13 +70,15 @@ namespace AIStudio.Wpf.DiagramDesigner
get; set;
}
[XmlAttribute]
[JsonProperty(PropertyName = "ItemWidth")]
[XmlAttribute("ItemWidth")]
public double PhysicalItemWidth
{
get; set;
}
[XmlAttribute]
[JsonProperty(PropertyName = "ItemHeight")]
[XmlAttribute("ItemHeight")]
public double PhysicalItemHeight
{
get; set;

View File

@@ -0,0 +1,165 @@
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Media;
using System.Xml;
using System.Xml.Serialization;
using AIStudio.Wpf.DiagramDesigner.Models;
using Newtonsoft.Json;
namespace AIStudio.Wpf.DiagramDesigner
{
[Serializable]
public class DiagramItem
{
public DiagramItem()
{
}
public DiagramItem(IDiagramViewModel diagramView)
{
Name = diagramView.Name;
DiagramType = diagramView.DiagramType;
ShowGrid = diagramView.ShowGrid;
PhysicalGridCellSize = diagramView.PhysicalGridCellSize;
CellHorizontalAlignment = diagramView.CellHorizontalAlignment;
CellVerticalAlignment = diagramView.CellVerticalAlignment;
PageSizeOrientation = diagramView.PageSizeOrientation;
PhysicalPageSize = diagramView.PhysicalPageSize;
PageSizeType = diagramView.PageSizeType;
PhysicalGridMarginSize = diagramView.PhysicalGridMarginSize;
GridColor = diagramView.GridColor;
}
[XmlAttribute]
public string Name
{
get; set;
}
[XmlAttribute]
public DiagramType DiagramType
{
get; set;
}
[XmlAttribute]
public bool ShowGrid
{
get; set;
}
[XmlIgnore]
public Size PhysicalGridCellSize
{
get; set;
}
[JsonIgnore]
[XmlAttribute("GridCellSize")]
public string XmlGridCellSize
{
get
{
return SerializeHelper.SerializeSize(PhysicalGridCellSize);
}
set
{
PhysicalGridCellSize = SerializeHelper.DeserializeSize(value);
}
}
[XmlAttribute]
public CellHorizontalAlignment CellHorizontalAlignment
{
get; set;
}
[XmlAttribute]
public CellVerticalAlignment CellVerticalAlignment
{
get; set;
}
[XmlAttribute]
public PageSizeOrientation PageSizeOrientation
{
get; set;
}
[XmlIgnore]
public Size PhysicalPageSize
{
get; set;
}
[JsonIgnore]
[XmlAttribute("PageSize")]
public string XmlPageSize
{
get
{
return SerializeHelper.SerializeSize(PhysicalPageSize);
}
set
{
PhysicalPageSize = SerializeHelper.DeserializeSize(value);
}
}
[XmlAttribute]
public PageSizeType PageSizeType
{
get; set;
}
[XmlIgnore]
public Size PhysicalGridMarginSize
{
get; set;
}
[JsonIgnore]
[XmlAttribute("GridMarginSize")]
public string XmlGridMarginSize
{
get
{
return SerializeHelper.SerializeSize(PhysicalGridMarginSize);
}
set
{
PhysicalGridMarginSize = SerializeHelper.DeserializeSize(value);
}
}
[XmlIgnore]
public Color GridColor
{
get; set;
}
[JsonIgnore]
[XmlAttribute("GridColor")]
public string XmlGridColor
{
get
{
return SerializeHelper.SerializeColor(GridColor);
}
set
{
GridColor = SerializeHelper.DeserializeColor(value);
}
}
[XmlArray]
public List<SerializableItem> DesignerItems { get; set; } = new List<SerializableItem>();
[XmlArray]
public List<SerializableItem> Connections { get; set; } = new List<SerializableItem>();
}
}