DiagramOption LayoutOption 参数整理

This commit is contained in:
kwai
2023-05-11 19:14:39 +08:00
parent 2045c5e45c
commit f995722828
51 changed files with 589 additions and 637 deletions

View File

@@ -94,313 +94,17 @@ namespace AIStudio.Wpf.DiagramDesigner
get; set;
}
private PageSizeType _pageSizeType = PageSizeType.A4;
public PageSizeType PageSizeType
{
get
{
return _pageSizeType;
}
set
{
SetProperty(ref _pageSizeType, value);
RaisePropertyChanged(nameof(PageSize));
}
}
private Size _pageSize = new Size(1000, 600);
public Size PageSize
{
get
{
if (PageSizeOrientation == PageSizeOrientation.Vertical)
{
return GetPageSize();
}
else
{
return new Size(GetPageSize().Height, GetPageSize().Width);
}
}
set
{
if (SetProperty(ref _pageSize, value))
{
RaisePropertyChanged(nameof(PhysicalPageSize));
}
}
}
public Size PhysicalPageSize
{
get
{
return new Size(ScreenHelper.WidthToMm(PageSize.Width), ScreenHelper.WidthToMm(PageSize.Height));
}
set
{
PageSize = new Size(ScreenHelper.MmToWidth(value.Width), ScreenHelper.MmToWidth(value.Height));
}
}
public Size GetPageSize()
{
Size size = _pageSize;
switch (PageSizeType)
{
case PageSizeType.A3: size = new Size(297, 420); break;
case PageSizeType.A4: size = new Size(210, 297); break;
case PageSizeType.A5: size = new Size(148, 210); break;
case PageSizeType.B4: size = new Size(257, 364); break;
case PageSizeType.B5: size = new Size(176, 250); break;
case PageSizeType.DLEnvelope: size = new Size(110, 220); break;
case PageSizeType.C5Envelope: size = new Size(162, 229); break;
case PageSizeType.Quarto: size = new Size(215, 275); break;
case PageSizeType.C6Quarto: size = new Size(114, 162); break;
case PageSizeType.B5Quarto: size = new Size(176, 250); break;
case PageSizeType.ItalyQuarto: size = new Size(110, 230); break;
case PageSizeType.A4small: size = new Size(210, 297); break;
case PageSizeType.GermanStdFanfold: size = new Size(215.9, 304.8); break;
case PageSizeType.GermanLegalFanfold: size = new Size(203.2, 330.2); break;
case PageSizeType.PRC16K: size = new Size(146, 215); break;
case PageSizeType.PRC32K: size = new Size(97, 151); break;
case PageSizeType.Letter: size = new Size(215.9, 279.4); break;
case PageSizeType.Folio: size = new Size(215.9, 330.2); break;
case PageSizeType.Legal: size = new Size(215.9, 355.6); break;
case PageSizeType.Executive: size = new Size(184.15, 266.7); break;
case PageSizeType.Statement: size = new Size(139.7, 215.9); break;
case PageSizeType.Envelope: size = new Size(104.77, 241.3); break;
case PageSizeType.MonarchEnvelope: size = new Size(98.425, 190.5); break;
case PageSizeType.Tabloid: size = new Size(279.4, 431.8); break;
case PageSizeType.LetterSmall: size = new Size(215.9, 279.4); break;
case PageSizeType.CSheet: size = new Size(431.8, 558.8); break;
case PageSizeType.DSheet: size = new Size(558.8, 863.6); break;
case PageSizeType.ESheet: size = new Size(863.6, 1117.6); break;
}
return new Size(ScreenHelper.MmToWidth(size.Width), ScreenHelper.MmToWidth(size.Height));
}
private PageSizeOrientation _pageSizeOrientation;
public PageSizeOrientation PageSizeOrientation
{
get
{
return _pageSizeOrientation;
}
set
{
SetProperty(ref _pageSizeOrientation, value);
RaisePropertyChanged(nameof(PageSize));
}
}
private PageUnit _pageUnit = PageUnit.cm;
private DiagramType _diagramType;
[Browsable(false)]
public PageUnit PageUnit
public DiagramType DiagramType
{
get
{
return _pageUnit;
return _diagramType;
}
set
{
if (value != PageUnit.cm && value != PageUnit.inch)
{
return;
}
SetProperty(ref _pageUnit, value);
}
}
private Size _gridCellSize = new Size(100, 100);
public Size GridCellSize
{
get
{
return _gridCellSize;
}
set
{
SetProperty(ref _gridCellSize, value);
}
}
public double GridCellWidth
{
get
{
return _gridCellSize.Width;
}
set
{
_gridCellSize.Width = value;
RaisePropertyChanged(nameof(PhysicalGridCellWidth));
RaisePropertyChanged(nameof(GridCellSize));
}
}
public double GridCellHeight
{
get
{
return _gridCellSize.Height;
}
set
{
_gridCellSize.Height = value;
RaisePropertyChanged(nameof(PhysicalGridCellHeight));
RaisePropertyChanged(nameof(GridCellSize));
}
}
public Size PhysicalGridCellSize
{
get
{
return new Size(ScreenHelper.WidthToMm(GridCellSize.Width), ScreenHelper.WidthToMm(GridCellSize.Height));
}
set
{
GridCellSize = new Size(ScreenHelper.MmToWidth(value.Width), ScreenHelper.MmToWidth(value.Height));
}
}
public double PhysicalGridCellWidth
{
get
{
return ScreenHelper.WidthToMm(GridCellWidth);
}
set
{
GridCellWidth = ScreenHelper.MmToWidth(value);
}
}
public double PhysicalGridCellHeight
{
get
{
return ScreenHelper.WidthToMm(GridCellHeight);
}
set
{
GridCellHeight = ScreenHelper.MmToWidth(value);
}
}
private Color _pageBackground = Colors.White;
public Color PageBackground
{
get
{
return _pageBackground;
}
set
{
SetProperty(ref _pageBackground, value);
}
}
private bool _showGrid = true;
public bool ShowGrid
{
get
{
return _showGrid;
}
set
{
SetProperty(ref _showGrid, value);
}
}
private Color _gridColor = Colors.LightGray;
public Color GridColor
{
get
{
return _gridColor;
}
set
{
SetProperty(ref _gridColor, value);
}
}
private Size _gridMarginSize = new Size(28, 28);
public Size GridMarginSize
{
get
{
return _gridMarginSize;
}
set
{
SetProperty(ref _gridMarginSize, value);
}
}
public double GridMarginWidth
{
get
{
return _gridMarginSize.Width;
}
set
{
_gridMarginSize.Width = value;
RaisePropertyChanged(nameof(GridMarginSize));
}
}
public double GridMarginHeight
{
get
{
return _gridMarginSize.Height;
}
set
{
_gridMarginSize.Height = value;
RaisePropertyChanged(nameof(GridMarginSize));
}
}
public Size PhysicalGridMarginSize
{
get
{
return new Size(ScreenHelper.WidthToMm(GridMarginSize.Width), ScreenHelper.WidthToMm(GridMarginSize.Height));
}
set
{
GridMarginSize = new Size(ScreenHelper.MmToWidth(value.Width), ScreenHelper.MmToWidth(value.Height));
}
}
public double PhysicalGridMarginWidth
{
get
{
return ScreenHelper.WidthToMm(GridMarginWidth);
}
set
{
GridMarginWidth = ScreenHelper.MmToWidth(value);
}
}
public double PhysicalGridMarginHeight
{
get
{
return ScreenHelper.WidthToMm(GridMarginHeight);
}
set
{
GridMarginHeight = ScreenHelper.MmToWidth(value);
SetProperty(ref _diagramType, value);
}
}
@@ -500,47 +204,7 @@ namespace AIStudio.Wpf.DiagramDesigner
}
}
private DiagramType _diagramType;
[Browsable(false)]
public DiagramType DiagramType
{
get
{
return _diagramType;
}
set
{
SetProperty(ref _diagramType, value);
}
}
private CellHorizontalAlignment _cellHorizontalAlignment;
[Browsable(false)]
public CellHorizontalAlignment CellHorizontalAlignment
{
get
{
return _cellHorizontalAlignment;
}
set
{
SetProperty(ref _cellHorizontalAlignment, value);
}
}
private CellVerticalAlignment _cellVerticalAlignment;
[Browsable(false)]
public CellVerticalAlignment CellVerticalAlignment
{
get
{
return _cellVerticalAlignment;
}
set
{
SetProperty(ref _cellVerticalAlignment, value);
}
}
private bool _isEditName;
[Browsable(false)]
@@ -691,11 +355,6 @@ namespace AIStudio.Wpf.DiagramDesigner
get; set;
} = new DiagramOption();
public bool AllowDrop
{
get; set;
} = true;
public DoCommandManager DoCommandManager { get; private set; } = new DoCommandManager();
public event DiagramEventHandler Event;
@@ -1170,16 +829,16 @@ namespace AIStudio.Wpf.DiagramDesigner
public DiagramViewModel(DiagramItem diagramItem) : this()
{
DiagramType = diagramItem.DiagramType;
ShowGrid = diagramItem.ShowGrid;
PhysicalGridCellSize = diagramItem.PhysicalGridCellSize;
CellHorizontalAlignment = diagramItem.CellHorizontalAlignment;
CellVerticalAlignment = diagramItem.CellVerticalAlignment;
PageSizeOrientation = diagramItem.PageSizeOrientation;
PhysicalPageSize = diagramItem.PhysicalPageSize;
PageSizeType = diagramItem.PageSizeType;
PhysicalGridMarginSize = diagramItem.PhysicalGridMarginSize;
GridColor = diagramItem.GridColor;
AllowDrop = diagramItem.AllowDrop;
DiagramOption.LayoutOption.ShowGrid = diagramItem.ShowGrid;
DiagramOption.LayoutOption.PhysicalGridCellSize = diagramItem.PhysicalGridCellSize;
DiagramOption.LayoutOption.CellHorizontalAlignment = diagramItem.CellHorizontalAlignment;
DiagramOption.LayoutOption.CellVerticalAlignment = diagramItem.CellVerticalAlignment;
DiagramOption.LayoutOption.PageSizeOrientation = diagramItem.PageSizeOrientation;
DiagramOption.LayoutOption.PhysicalPageSize = diagramItem.PhysicalPageSize;
DiagramOption.LayoutOption.PageSizeType = diagramItem.PageSizeType;
DiagramOption.LayoutOption.PhysicalGridMarginSize = diagramItem.PhysicalGridMarginSize;
DiagramOption.LayoutOption.GridColor = diagramItem.GridColor;
DiagramOption.LayoutOption.AllowDrop = diagramItem.AllowDrop;
Init(true);
}
@@ -2601,8 +2260,8 @@ namespace AIStudio.Wpf.DiagramDesigner
var oldcenter = BoundingRect.Center;
foreach (var item in selectedItems.OfType<DesignerItemViewModelBase>())
{
item.Left = item.Left - oldcenter.X + PageSize.Width / 2;
item.Top = item.Top - oldcenter.Y + PageSize.Height / 2;
item.Left = item.Left - oldcenter.X + DiagramOption.LayoutOption.PageSize.Width / 2;
item.Top = item.Top - oldcenter.Y + DiagramOption.LayoutOption.PageSize.Height / 2;
}
FitViewModel = new FitViewModel() { BoundingRect = DiagramViewModelHelper.GetBoundingRectangle(selectedItems) };