mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-03-03 00:00:57 +08:00
124 lines
7.1 KiB
C#
124 lines
7.1 KiB
C#
using System.Collections.Generic;
|
|
using System.Collections.ObjectModel;
|
|
using System.Linq;
|
|
using System.Windows;
|
|
using AIStudio.Wpf.DiagramApp.Models;
|
|
using AIStudio.Wpf.DiagramDesigner;
|
|
|
|
namespace AIStudio.Wpf.DiagramApp.ViewModels
|
|
{
|
|
public class DrawingViewModel : PageViewModel
|
|
{
|
|
public DrawingViewModel(string title, string status, DiagramType diagramType) : base(title, status, diagramType)
|
|
{
|
|
|
|
}
|
|
public DrawingViewModel(string filename, DiagramDocument diagramDocument) : base(filename, diagramDocument)
|
|
{
|
|
foreach (var vm in DiagramViewModels)
|
|
{
|
|
vm.Init(false);
|
|
}
|
|
}
|
|
|
|
protected override void InitDiagramViewModel()
|
|
{
|
|
base.InitDiagramViewModel();
|
|
|
|
DiagramViewModel.DiagramOption.LayoutOption.GridCellSize = new Size(100, 100);
|
|
DiagramViewModel.DiagramOption.LayoutOption.ShowGrid = false;
|
|
DiagramViewModel.DiagramOption.LayoutOption.AllowDrop = true;
|
|
}
|
|
|
|
|
|
protected override void Init(bool initNew)
|
|
{
|
|
DiagramViewModels = new ObservableCollection<IDiagramViewModel>()
|
|
{
|
|
GetDiagramViewModel("页-1", DiagramType, initNew),
|
|
};
|
|
DiagramViewModel = DiagramViewModels.FirstOrDefault();
|
|
|
|
DesignerItemViewModelBase line = new LineDrawingDesignerItemViewModel(DiagramViewModel, new List<Point> { new Point(38, 38), new Point(118, 118) }, true);
|
|
DiagramViewModel.Add(line);
|
|
|
|
DesignerItemViewModelBase rectangle = new RectangleDrawingDesignerItemViewModel(DiagramViewModel, new List<Point> { new Point(138, 38), new Point(218, 118) }, true);
|
|
DiagramViewModel.Add(rectangle);
|
|
|
|
DesignerItemViewModelBase ellipse = new EllipseDrawingDesignerItemViewModel(DiagramViewModel, new List<Point> { new Point(238, 38), new Point(318, 118) }, true);
|
|
DiagramViewModel.Add(ellipse);
|
|
|
|
DesignerItemViewModelBase text = new TextDrawingDesignerItemViewModel(DiagramViewModel, new Point(338, 38), "欢迎使用AIStudio画板", true);
|
|
DiagramViewModel.Add(text);
|
|
|
|
DesignerItemViewModelBase triangle = new SharpDrawingDesignerItemViewModel(DiagramViewModel, DrawMode.ErasableTriangle, new List<Point> { new Point(438, 38), new Point(518, 118) }, true);
|
|
DiagramViewModel.Add(triangle);
|
|
|
|
DesignerItemViewModelBase rhombus = new SharpDrawingDesignerItemViewModel(DiagramViewModel, DrawMode.ErasableRhombus, new List<Point> { new Point(538, 38), new Point(618, 118) }, true);
|
|
DiagramViewModel.Add(rhombus);
|
|
|
|
DesignerItemViewModelBase hexagon = new SharpDrawingDesignerItemViewModel(DiagramViewModel, DrawMode.ErasableHexagon, new List<Point> { new Point(638, 38), new Point(718, 118) }, true);
|
|
DiagramViewModel.Add(hexagon);
|
|
|
|
DesignerItemViewModelBase pentagram = new SharpDrawingDesignerItemViewModel(DiagramViewModel, DrawMode.ErasablePentagram, new List<Point> { new Point(738, 38), new Point(818, 118) }, true);
|
|
DiagramViewModel.Add(pentagram);
|
|
|
|
DesignerItemViewModelBase starFour = new SharpDrawingDesignerItemViewModel(DiagramViewModel, DrawMode.ErasableStarFour, new List<Point> { new Point(38, 138), new Point(118, 218) }, true);
|
|
DiagramViewModel.Add(starFour);
|
|
|
|
DesignerItemViewModelBase starThree = new SharpDrawingDesignerItemViewModel(DiagramViewModel, DrawMode.ErasableStarThree, new List<Point> { new Point(138, 138), new Point(218, 218) }, true);
|
|
DiagramViewModel.Add(starThree);
|
|
|
|
DesignerItemViewModelBase chat = new SharpDrawingDesignerItemViewModel(DiagramViewModel, DrawMode.ErasableChat, new List<Point> { new Point(238, 138), new Point(318, 218) }, true);
|
|
DiagramViewModel.Add(chat);
|
|
|
|
DesignerItemViewModelBase comment = new SharpDrawingDesignerItemViewModel(DiagramViewModel, DrawMode.ErasableComment, new List<Point> { new Point(338, 138), new Point(418, 218) }, true);
|
|
DiagramViewModel.Add(comment);
|
|
|
|
DesignerItemViewModelBase cloud = new SharpDrawingDesignerItemViewModel(DiagramViewModel, DrawMode.ErasableCloud, new List<Point> { new Point(438, 138), new Point(518, 218) }, true);
|
|
DiagramViewModel.Add(cloud);
|
|
|
|
DesignerItemViewModelBase arrowRight = new SharpDrawingDesignerItemViewModel(DiagramViewModel, DrawMode.ErasableArrowRight, new List<Point> { new Point(538, 138), new Point(618, 218) }, true);
|
|
DiagramViewModel.Add(arrowRight);
|
|
|
|
DesignerItemViewModelBase arrowLeft = new SharpDrawingDesignerItemViewModel(DiagramViewModel, DrawMode.ErasableArrowLeft, new List<Point> { new Point(638, 138), new Point(718, 218) }, true);
|
|
DiagramViewModel.Add(arrowLeft);
|
|
|
|
DesignerItemViewModelBase check = new SharpDrawingDesignerItemViewModel(DiagramViewModel, DrawMode.ErasableCheck, new List<Point> { new Point(738, 138), new Point(818, 218) }, true);
|
|
DiagramViewModel.Add(check);
|
|
|
|
DesignerItemViewModelBase close = new SharpDrawingDesignerItemViewModel(DiagramViewModel, DrawMode.ErasableClose, new List<Point> { new Point(38, 238), new Point(118, 318) }, true);
|
|
DiagramViewModel.Add(close);
|
|
|
|
DesignerItemViewModelBase heart = new SharpDrawingDesignerItemViewModel(DiagramViewModel, DrawMode.ErasableHeart, new List<Point> { new Point(138, 238), new Point(218, 318) }, true);
|
|
DiagramViewModel.Add(heart);
|
|
|
|
DesignerItemViewModelBase polyline = new PolylineDrawingDesignerItemViewModel(DiagramViewModel, new List<Point> { new Point(238, 238), new Point(298, 258), new Point(258, 298), new Point(318, 318) }, true);
|
|
DiagramViewModel.Add(polyline);
|
|
|
|
DesignerItemViewModelBase polygon = new PolygonDrawingDesignerItemViewModel(DiagramViewModel, new List<Point> { new Point(338, 238), new Point(398, 258), new Point(358, 298), new Point(418, 318) }, true);
|
|
DiagramViewModel.Add(polygon);
|
|
|
|
//画正方形
|
|
var drawingPoint1 = DrawingHelper.GetPoints(new Point(38, 338), 0, Enumerable.Repeat(new System.Tuple<double, double>(80, 90), 4).ToList());
|
|
DesignerItemViewModelBase directLine1 = new DirectLineDrawingDesignerItemViewModel(DiagramViewModel, drawingPoint1, true);
|
|
DiagramViewModel.Add(directLine1);
|
|
|
|
//画三角形
|
|
var drawingPoint2 = DrawingHelper.GetPoints(new Point(138, 338), 0, Enumerable.Repeat(new System.Tuple<double, double>(80, 120), 3).ToList());
|
|
DesignerItemViewModelBase directLine2 = new DirectLineDrawingDesignerItemViewModel(DiagramViewModel, drawingPoint2, true);
|
|
DiagramViewModel.Add(directLine2);
|
|
|
|
//画五边形
|
|
var drawingPoint3 = DrawingHelper.GetPoints(new Point(238, 338), 0, Enumerable.Repeat(new System.Tuple<double, double>(100, 72), 5).ToList());
|
|
DesignerItemViewModelBase directLine3 = new DirectLineDrawingDesignerItemViewModel(DiagramViewModel, drawingPoint3, true);
|
|
DiagramViewModel.Add(directLine3);
|
|
}
|
|
|
|
public override void Dispose()
|
|
{
|
|
base.Dispose();
|
|
}
|
|
}
|
|
}
|