准备切换到左侧视图模式

This commit is contained in:
kwai
2023-05-11 10:57:08 +08:00
parent adf1ee0805
commit 2045c5e45c
14 changed files with 129 additions and 43 deletions

View File

@@ -65,29 +65,36 @@ namespace AIStudio.Wpf.DiagramDesigner
_rubberbandBrush = null;
_rubberbandPen = new Pen(new SolidColorBrush(Colors.Red) { Opacity = 0.5 }, _drawingDesignerItem.ColorViewModel.LineWidth);
}
else if (DrawMode >= DrawMode.Line && DrawMode <= DrawMode.DirectLine)
else if (DrawMode == DrawMode.EraserPreview)
{
if (DrawMode == DrawMode.Line)
_drawingDesignerItem = new EraserPreviewDrawingDesignerItemViewModel(_viewModel, dragStartPoint);
_rubberbandBrush = null;
_rubberbandPen = new Pen(new SolidColorBrush(Colors.Red) { Opacity = 0.5 }, _drawingDesignerItem.ColorViewModel.LineWidth);
}
else if (DrawMode >= DrawMode.ErasableLine && DrawMode <= DrawMode.ErasableDirectLine)
{
if (DrawMode == DrawMode.ErasableLine)
{
_drawingDesignerItem = new LineDrawingDesignerItemViewModel(_viewModel, dragStartPoint, true);
}
else if (DrawMode == DrawMode.Rectangle)
else if (DrawMode == DrawMode.ErasableRectangle)
{
_drawingDesignerItem = new RectangleDrawingDesignerItemViewModel(_viewModel, dragStartPoint, true);
}
else if (DrawMode == DrawMode.Ellipse)
else if (DrawMode == DrawMode.ErasableEllipse)
{
_drawingDesignerItem = new EllipseDrawingDesignerItemViewModel(_viewModel, dragStartPoint, true);
}
else if (DrawMode == DrawMode.Polyline)
else if (DrawMode == DrawMode.ErasablePolyline)
{
_drawingDesignerItem = new PolylineDrawingDesignerItemViewModel(_viewModel, dragStartPoint, true);
}
else if (DrawMode == DrawMode.Polygon)
else if (DrawMode == DrawMode.ErasablePolygon)
{
_drawingDesignerItem = new PolygonDrawingDesignerItemViewModel(_viewModel, dragStartPoint, true);
}
else if (DrawMode == DrawMode.DirectLine)
else if (DrawMode == DrawMode.ErasableDirectLine)
{
_drawingDesignerItem = new DirectLineDrawingDesignerItemViewModel(_viewModel, dragStartPoint, true);
}
@@ -96,29 +103,29 @@ namespace AIStudio.Wpf.DiagramDesigner
_rubberbandPen = new Pen(ColorObject.ToBrush(_drawingDesignerItem.ColorViewModel.LineColor), _drawingDesignerItem.ColorViewModel.LineWidth);
_rubberbandPen.DashStyle = new DashStyle(StrokeDashArray.Dash[(int)_drawingDesignerItem.ColorViewModel.LineDashStyle], 1);
}
else if (DrawMode >= DrawMode.FillableLine && DrawMode <= DrawMode.FillableDirectLine)
else if (DrawMode >= DrawMode.Line && DrawMode <= DrawMode.DirectLine)
{
if (DrawMode == DrawMode.FillableLine)
if (DrawMode == DrawMode.Line)
{
_drawingDesignerItem = new LineDrawingDesignerItemViewModel(_viewModel, dragStartPoint, false);
}
else if (DrawMode == DrawMode.FillableRectangle)
else if (DrawMode == DrawMode.Rectangle)
{
_drawingDesignerItem = new RectangleDrawingDesignerItemViewModel(_viewModel, dragStartPoint, false);
}
else if (DrawMode == DrawMode.FillableEllipse)
else if (DrawMode == DrawMode.Ellipse)
{
_drawingDesignerItem = new EllipseDrawingDesignerItemViewModel(_viewModel, dragStartPoint, false);
}
else if (DrawMode == DrawMode.FillablePolyline)
else if (DrawMode == DrawMode.Polyline)
{
_drawingDesignerItem = new PolylineDrawingDesignerItemViewModel(_viewModel, dragStartPoint, false);
}
else if (DrawMode == DrawMode.FillablePolygon)
else if (DrawMode == DrawMode.Polygon)
{
_drawingDesignerItem = new PolygonDrawingDesignerItemViewModel(_viewModel, dragStartPoint, false);
}
else if (DrawMode == DrawMode.FillableDirectLine)
else if (DrawMode == DrawMode.DirectLine)
{
_drawingDesignerItem = new DirectLineDrawingDesignerItemViewModel(_viewModel, dragStartPoint, false);
}

View File

@@ -13,19 +13,23 @@ namespace AIStudio.Wpf.DiagramDesigner
ConnectingLineBoundary = 13,
//101-110为可部分擦除的形状
Eraser = 100,
Line = 101,
Rectangle = 102,
Ellipse = 103,
Polyline = 104,
Polygon = 105,
DirectLine = 106,
//不可部分擦除
FillableLine = 111,
FillableRectangle = 112,
FillableEllipse = 113,
FillablePolyline = 114,
FillablePolygon = 115,
FillableDirectLine = 116,
EraserPreview = 101,
ErasableLine = 110,
ErasableRectangle = 111,
ErasableEllipse = 112,
ErasablePolyline = 113,
ErasablePolygon = 114,
ErasableDirectLine = 115,
Text = 200,
Line = 210,
Rectangle = 211,
Ellipse = 212,
Polyline = 213,
Polygon = 214,
DirectLine = 215,
}
}

View File

@@ -167,6 +167,10 @@ namespace AIStudio.Wpf.DiagramDesigner
[XmlArray]
public List<SerializableItem> Connections { get; set; } = new List<SerializableItem>();
[XmlAttribute]
public string Thumbnail
{
get; set;
}
}
}

View File

@@ -146,7 +146,7 @@ namespace AIStudio.Wpf.DiagramDesigner
}
}
private DrawMode _shapeDrawMode = DrawMode.Rectangle;
private DrawMode _shapeDrawMode = DrawMode.ErasableRectangle;
public DrawMode DrawingDrawMode
{
get

View File

@@ -9,6 +9,7 @@ using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;
using System.Xml.Serialization;
using AIStudio.Wpf.DiagramDesigner.Geometrys;
using AIStudio.Wpf.DiagramDesigner.Helpers;
using AIStudio.Wpf.DiagramDesigner.Models;
@@ -669,6 +670,10 @@ namespace AIStudio.Wpf.DiagramDesigner
return menuOptions;
}
}
public string Thumbnail
{
get; set;
}
public bool ShowMenuOptions
{

View File

@@ -20,11 +20,11 @@ namespace AIStudio.Wpf.DiagramDesigner
{
}
public DirectLineDrawingDesignerItemViewModel(IDiagramViewModel root, Point startPoint, bool erasable) : base(root, DrawMode.DirectLine, startPoint, erasable)
public DirectLineDrawingDesignerItemViewModel(IDiagramViewModel root, Point startPoint, bool erasable) : base(root, DrawMode.ErasableDirectLine, startPoint, erasable)
{
}
public DirectLineDrawingDesignerItemViewModel(IDiagramViewModel root, List<Point> points, bool erasable) : base(root, DrawMode.DirectLine, points, erasable)
public DirectLineDrawingDesignerItemViewModel(IDiagramViewModel root, List<Point> points, bool erasable) : base(root, DrawMode.ErasableDirectLine, points, erasable)
{
}

View File

@@ -19,11 +19,11 @@ namespace AIStudio.Wpf.DiagramDesigner
{
}
public EllipseDrawingDesignerItemViewModel(IDiagramViewModel root, Point startPoint, bool erasable) : base(root, DrawMode.Rectangle, startPoint, erasable)
public EllipseDrawingDesignerItemViewModel(IDiagramViewModel root, Point startPoint, bool erasable) : base(root, DrawMode.ErasableRectangle, startPoint, erasable)
{
}
public EllipseDrawingDesignerItemViewModel(IDiagramViewModel root, List<Point> points, bool erasable) : base(root, DrawMode.Rectangle, points, erasable)
public EllipseDrawingDesignerItemViewModel(IDiagramViewModel root, List<Point> points, bool erasable) : base(root, DrawMode.ErasableRectangle, points, erasable)
{
}

View File

@@ -20,11 +20,11 @@ namespace AIStudio.Wpf.DiagramDesigner
{
}
public LineDrawingDesignerItemViewModel(IDiagramViewModel root, Point startPoint, bool erasable) : base(root, DrawMode.Line, startPoint, erasable)
public LineDrawingDesignerItemViewModel(IDiagramViewModel root, Point startPoint, bool erasable) : base(root, DrawMode.ErasableLine, startPoint, erasable)
{
}
public LineDrawingDesignerItemViewModel(IDiagramViewModel root, List<Point> points, bool erasable) : base(root, DrawMode.Line, points, erasable)
public LineDrawingDesignerItemViewModel(IDiagramViewModel root, List<Point> points, bool erasable) : base(root, DrawMode.ErasableLine, points, erasable)
{
}

View File

@@ -16,11 +16,11 @@ namespace AIStudio.Wpf.DiagramDesigner
{
}
public PolygonDrawingDesignerItemViewModel(IDiagramViewModel root, Point startPoint, bool erasable) : base(root, DrawMode.Line, startPoint, erasable)
public PolygonDrawingDesignerItemViewModel(IDiagramViewModel root, Point startPoint, bool erasable) : base(root, DrawMode.ErasableLine, startPoint, erasable)
{
}
public PolygonDrawingDesignerItemViewModel(IDiagramViewModel root, List<Point> points, bool erasable) : base(root, DrawMode.Line, points, erasable)
public PolygonDrawingDesignerItemViewModel(IDiagramViewModel root, List<Point> points, bool erasable) : base(root, DrawMode.ErasableLine, points, erasable)
{
}

View File

@@ -21,11 +21,11 @@ namespace AIStudio.Wpf.DiagramDesigner
{
}
public PolylineDrawingDesignerItemViewModel(IDiagramViewModel root, Point startPoint, bool erasable) : base(root, DrawMode.Line, startPoint, erasable)
public PolylineDrawingDesignerItemViewModel(IDiagramViewModel root, Point startPoint, bool erasable) : base(root, DrawMode.ErasableLine, startPoint, erasable)
{
}
public PolylineDrawingDesignerItemViewModel(IDiagramViewModel root, List<Point> points, bool erasable) : base(root, DrawMode.Line, points, erasable)
public PolylineDrawingDesignerItemViewModel(IDiagramViewModel root, List<Point> points, bool erasable) : base(root, DrawMode.ErasableLine, points, erasable)
{
}

View File

@@ -19,11 +19,11 @@ namespace AIStudio.Wpf.DiagramDesigner
{
}
public RectangleDrawingDesignerItemViewModel(IDiagramViewModel root, Point startPoint, bool erasable) : base(root, DrawMode.Rectangle, startPoint, erasable)
public RectangleDrawingDesignerItemViewModel(IDiagramViewModel root, Point startPoint, bool erasable) : base(root, DrawMode.ErasableRectangle, startPoint, erasable)
{
}
public RectangleDrawingDesignerItemViewModel(IDiagramViewModel root, List<Point> points, bool erasable) : base(root, DrawMode.Rectangle, points, erasable)
public RectangleDrawingDesignerItemViewModel(IDiagramViewModel root, List<Point> points, bool erasable) : base(root, DrawMode.ErasableRectangle, points, erasable)
{
}

View File

@@ -5,6 +5,7 @@ using System.ComponentModel;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
using System.Xml.Serialization;
namespace AIStudio.Wpf.DiagramDesigner
{
@@ -347,6 +348,10 @@ namespace AIStudio.Wpf.DiagramDesigner
{
get; set;
}
string Thumbnail
{
get; set;
}
#region
IDrawModeViewModel DrawModeViewModel
{