mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-04-29 12:43:24 +08:00
使用物理尺寸进行设置
This commit is contained in:
@@ -1,130 +0,0 @@
|
||||
using AIStudio.Wpf.DiagramDesigner;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
using AIStudio.Wpf.Flowchart;
|
||||
using AIStudio.Wpf.DiagramDesigner.Additionals.Extensions.ViewModels;
|
||||
using AIStudio.Wpf.DiagramDesigner.Additionals.Extensions.Models;
|
||||
using Newtonsoft.Json;
|
||||
using AIStudio.Wpf.Flowchart.Models;
|
||||
using AIStudio.Wpf.Flowchart.ViewModels;
|
||||
using AIStudio.Wpf.SFC.Models;
|
||||
using AIStudio.Wpf.SFC.ViewModels;
|
||||
using System.Windows;
|
||||
using System.Windows.Media;
|
||||
using AIStudio.Wpf.DiagramDesigner.Models;
|
||||
using AIStudio.Wpf.DiagramDesigner.Helpers;
|
||||
|
||||
namespace AIStudio.Wpf.DiagramApp.Models
|
||||
{
|
||||
[Serializable]
|
||||
public class DiagramItem
|
||||
{
|
||||
public DiagramItem()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
[XmlAttribute]
|
||||
public string Name { get; set; }
|
||||
|
||||
[XmlAttribute]
|
||||
public DiagramType DiagramType { get; set; }
|
||||
|
||||
[XmlAttribute]
|
||||
public bool ShowGrid { get; set; }
|
||||
|
||||
[XmlIgnore]
|
||||
public Size GridCellSize { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
[XmlAttribute("GridCellSize")]
|
||||
public string XmlGridCellSize
|
||||
{
|
||||
get
|
||||
{
|
||||
return SerializeHelper.SerializeSize(GridCellSize);
|
||||
}
|
||||
set
|
||||
{
|
||||
GridCellSize = SerializeHelper.DeserializeSize(value);
|
||||
}
|
||||
}
|
||||
|
||||
[XmlAttribute]
|
||||
public CellHorizontalAlignment CellHorizontalAlignment { get; set; }
|
||||
|
||||
[XmlAttribute]
|
||||
public CellVerticalAlignment CellVerticalAlignment { get; set; }
|
||||
|
||||
[XmlAttribute]
|
||||
public PageSizeOrientation PageSizeOrientation { get; set; }
|
||||
|
||||
[XmlIgnore]
|
||||
public Size PageSize { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
[XmlAttribute("PageSize")]
|
||||
public string XmlPageSize
|
||||
{
|
||||
get
|
||||
{
|
||||
return SerializeHelper.SerializeSize(PageSize);
|
||||
}
|
||||
set
|
||||
{
|
||||
PageSize = SerializeHelper.DeserializeSize(value);
|
||||
}
|
||||
}
|
||||
|
||||
[XmlAttribute]
|
||||
public PageSizeType PageSizeType { get; set; }
|
||||
|
||||
[XmlIgnore]
|
||||
public Size GridMarginSize { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
[XmlAttribute("GridMarginSize")]
|
||||
public string XmlGridMarginSize
|
||||
{
|
||||
get
|
||||
{
|
||||
return SerializeHelper.SerializeSize(GridMarginSize);
|
||||
}
|
||||
set
|
||||
{
|
||||
GridMarginSize = 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>();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -245,13 +245,13 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|
||||
viewModel.Name = diagramItem.Name;
|
||||
viewModel.DiagramType = diagramItem.DiagramType;
|
||||
viewModel.ShowGrid = diagramItem.ShowGrid;
|
||||
viewModel.GridCellSize = diagramItem.GridCellSize;
|
||||
viewModel.PhysicalGridCellSize = diagramItem.PhysicalGridCellSize;
|
||||
viewModel.CellHorizontalAlignment = diagramItem.CellHorizontalAlignment;
|
||||
viewModel.CellVerticalAlignment = diagramItem.CellVerticalAlignment;
|
||||
viewModel.PageSizeOrientation = diagramItem.PageSizeOrientation;
|
||||
viewModel.PageSize = diagramItem.PageSize;
|
||||
viewModel.PhysicalPageSize = diagramItem.PhysicalPageSize;
|
||||
viewModel.PageSizeType = diagramItem.PageSizeType;
|
||||
viewModel.GridMarginSize = diagramItem.GridMarginSize;
|
||||
viewModel.PhysicalGridMarginSize = diagramItem.PhysicalGridMarginSize;
|
||||
viewModel.GridColor = diagramItem.GridColor;
|
||||
|
||||
foreach (var diagramItemData in diagramItem.DesignerItems)
|
||||
@@ -314,18 +314,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|
||||
|
||||
foreach (var viewModel in DiagramViewModels)
|
||||
{
|
||||
DiagramItem diagramItem = new DiagramItem();
|
||||
diagramItem.Name = viewModel.Name;
|
||||
diagramItem.DiagramType = viewModel.DiagramType;
|
||||
diagramItem.ShowGrid = viewModel.ShowGrid;
|
||||
diagramItem.GridCellSize = viewModel.GridCellSize;
|
||||
diagramItem.CellHorizontalAlignment = viewModel.CellHorizontalAlignment;
|
||||
diagramItem.CellVerticalAlignment = viewModel.CellVerticalAlignment;
|
||||
diagramItem.PageSizeOrientation = viewModel.PageSizeOrientation;
|
||||
diagramItem.PageSize = viewModel.PageSize;
|
||||
diagramItem.PageSizeType = viewModel.PageSizeType;
|
||||
diagramItem.GridMarginSize = viewModel.GridMarginSize;
|
||||
diagramItem.GridColor = viewModel.GridColor;
|
||||
DiagramItem diagramItem = new DiagramItem(viewModel);
|
||||
|
||||
var selectedDesignerItems = viewModel.Items.OfType<DesignerItemViewModelBase>();
|
||||
var selectedConnections = viewModel.Items.OfType<ConnectionViewModel>();
|
||||
@@ -450,18 +439,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|
||||
if (DiagramViewModel != null)
|
||||
{
|
||||
var viewModel = DiagramViewModel;
|
||||
DiagramItem diagramItem = new DiagramItem();
|
||||
diagramItem.Name = viewModel.Name;
|
||||
diagramItem.DiagramType = viewModel.DiagramType;
|
||||
diagramItem.ShowGrid = viewModel.ShowGrid;
|
||||
diagramItem.GridCellSize = viewModel.GridCellSize;
|
||||
diagramItem.CellHorizontalAlignment = viewModel.CellHorizontalAlignment;
|
||||
diagramItem.CellVerticalAlignment = viewModel.CellVerticalAlignment;
|
||||
diagramItem.PageSizeOrientation = viewModel.PageSizeOrientation;
|
||||
diagramItem.PageSize = viewModel.PageSize;
|
||||
diagramItem.PageSizeType = viewModel.PageSizeType;
|
||||
diagramItem.GridMarginSize = viewModel.GridMarginSize;
|
||||
diagramItem.GridColor = viewModel.GridColor;
|
||||
DiagramItem diagramItem = new DiagramItem(viewModel);
|
||||
|
||||
var selectedDesignerItems = viewModel.Items.OfType<DesignerItemViewModelBase>();
|
||||
var selectedConnections = viewModel.Items.OfType<ConnectionViewModel>();
|
||||
@@ -469,18 +447,8 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|
||||
diagramItem.DesignerItems = selectedDesignerItems.Select(p => p.ToSerializableItem("json")).Where(p => p != null).ToList();
|
||||
diagramItem.Connections = selectedConnections.Select(p => p.ToSerializableItem("json")).Where(p => p != null).ToList();
|
||||
|
||||
viewModel = new DiagramViewModel();
|
||||
viewModel = new DiagramViewModel(diagramItem);
|
||||
viewModel.Name = NewNameHelper.GetNewName(DiagramViewModels.Select(p => p.Name), "页-");
|
||||
viewModel.DiagramType = diagramItem.DiagramType;
|
||||
viewModel.ShowGrid = diagramItem.ShowGrid;
|
||||
viewModel.GridCellSize = diagramItem.GridCellSize;
|
||||
viewModel.CellHorizontalAlignment = diagramItem.CellHorizontalAlignment;
|
||||
viewModel.CellVerticalAlignment = diagramItem.CellVerticalAlignment;
|
||||
viewModel.PageSizeOrientation = diagramItem.PageSizeOrientation;
|
||||
viewModel.PageSize = diagramItem.PageSize;
|
||||
viewModel.PageSizeType = diagramItem.PageSizeType;
|
||||
viewModel.GridMarginSize = diagramItem.GridMarginSize;
|
||||
viewModel.GridColor = diagramItem.GridColor;
|
||||
|
||||
foreach (var diagramItemData in diagramItem.DesignerItems)
|
||||
{
|
||||
|
||||
@@ -1523,16 +1523,16 @@
|
||||
<iconPacks:PackIconMaterial Kind="Grid" VerticalAlignment="Center" HorizontalAlignment="Center"/>
|
||||
</Fluent:SplitButton.LargeIcon>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Margin="5" Text="宽度" VerticalAlignment="Center"/>
|
||||
<Fluent:Spinner Margin="5" Width="60" Size="Small" Value="{Binding DiagramsViewModel.DiagramViewModel.GridCellWidth,Mode=TwoWay}" Minimum="0" Format="0" />
|
||||
<TextBlock Margin="5" Text="高度" VerticalAlignment="Center"/>
|
||||
<Fluent:Spinner Margin="5" Width="60" Size="Small" Value="{Binding DiagramsViewModel.DiagramViewModel.GridCellHeight,Mode=TwoWay}" Minimum="0" Format="0" />
|
||||
<TextBlock Margin="5" Text="宽度mm" VerticalAlignment="Center"/>
|
||||
<Fluent:Spinner Margin="5" Width="60" Size="Small" Value="{Binding DiagramsViewModel.DiagramViewModel.PhysicalGridCellWidth,Mode=TwoWay}" Minimum="0" Format="0" />
|
||||
<TextBlock Margin="5" Text="高度mm" VerticalAlignment="Center"/>
|
||||
<Fluent:Spinner Margin="5" Width="60" Size="Small" Value="{Binding DiagramsViewModel.DiagramViewModel.PhysicalGridCellHeight,Mode=TwoWay}" Minimum="0" Format="0" />
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Margin="5" Text="左右边距" VerticalAlignment="Center"/>
|
||||
<Fluent:Spinner Margin="5" Width="60" Size="Small" Value="{Binding DiagramsViewModel.DiagramViewModel.GridMarginWidth,Mode=TwoWay}" Minimum="0" Format="0" />
|
||||
<TextBlock Margin="5" Text="上下边距" VerticalAlignment="Center"/>
|
||||
<Fluent:Spinner Margin="5" Width="60" Size="Small" Value="{Binding DiagramsViewModel.DiagramViewModel.GridMarginHeight,Mode=TwoWay}" Minimum="0" Format="0" />
|
||||
<TextBlock Margin="5" Text="左右边距mm" VerticalAlignment="Center"/>
|
||||
<Fluent:Spinner Margin="5" Width="60" Size="Small" Value="{Binding DiagramsViewModel.DiagramViewModel.PhysicalGridMarginWidth,Mode=TwoWay}" Minimum="0" Format="0" />
|
||||
<TextBlock Margin="5" Text="上下边距mm" VerticalAlignment="Center"/>
|
||||
<Fluent:Spinner Margin="5" Width="60" Size="Small" Value="{Binding DiagramsViewModel.DiagramViewModel.PhysicalGridMarginHeight,Mode=TwoWay}" Minimum="0" Format="0" />
|
||||
</StackPanel>
|
||||
|
||||
<Fluent:SplitButton.ToolTip>
|
||||
@@ -2022,7 +2022,7 @@
|
||||
<Fluent:StatusBarItem Title="Mouse" HorizontalAlignment="Right" >
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock VerticalAlignment="Center" Width="150">
|
||||
<Run>鼠标位置:</Run>
|
||||
<Run>鼠标位置mm:</Run>
|
||||
<Run Text="{Binding DiagramsViewModel.DiagramViewModel.CurrentPoint.X,StringFormat=f1}"/>
|
||||
<Run>,</Run>
|
||||
<Run Text="{Binding DiagramsViewModel.DiagramViewModel.CurrentPoint.Y,StringFormat=f1}"/>
|
||||
|
||||
Reference in New Issue
Block a user