You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

126 lines
3.8 KiB
C#

using Prism.Mvvm;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Media;
namespace Txgy.EWS.Client.Models
{
public class CadText : BindableBase
{
private bool visible = true;
public bool Visible
{
get { return visible; }
set
{
SetProperty(ref visible, value);
}
}
public FormattedText formattedText { get; set; }
public Point origin { get; set; }
public Point drawPoint { get; set; }
public CadText()
{
}
public CadText(FormattedText formattedText, Point origin, bool visible = true)
{
this.Visible = visible;
this.formattedText = formattedText;
this.origin = origin;
}
}
public class CadLine : BindableBase
{
private bool visible = true;
public bool Visible
{
get { return visible; }
set
{
SetProperty(ref visible, value);
}
}
public Pen pen { get; set; }
public Point originPoint0 { get; set; }
public Point originPoint1 { get; set; }
public Point drawPoint0 { get; set; }
public Point drawPoint1 { get; set; }
public CadLine()
{
}
public CadLine(Pen pen, Point point0, Point point1, bool visible = true)
{
this.Visible = visible;
this.pen = pen;
this.originPoint0 = point0;
this.originPoint1 = point1;
}
}
public class CadGeometry
{
//public PathGeometry DrawGeometry { get; set; }
public bool IsClose { get; set; }
public bool IsFill { get; set; }
public List<Point> originPoints { get; set; }
public Point[] drawPoints { get; set; }
//public void SetDrawGeometry()
//{
// PolyLineSegment lineSegment = new PolyLineSegment();
// foreach (var item in this.originPoints)
// {
// lineSegment.Points.Add(item);
// }
// PathSegmentCollection myPathSegmentCollection = new PathSegmentCollection();
// myPathSegmentCollection.Add(lineSegment);
// PathFigure pathFigure = new PathFigure();
// pathFigure.IsClosed = this.IsClose;
// pathFigure.IsFilled = this.IsFill;
// pathFigure.StartPoint = this.originPoints[0];
// pathFigure.Segments = myPathSegmentCollection;
// PathFigureCollection pthFigureCollection = new PathFigureCollection();
// pthFigureCollection.Add(pathFigure);
// this.DrawGeometry = new PathGeometry();
// this.DrawGeometry.Figures = pthFigureCollection;
//}
public static PathGeometry CreateCadGeometry(Point[] points, bool isClose, bool isFill)
{
PolyLineSegment lineSegment = new PolyLineSegment();
foreach (var item in points)
{
lineSegment.Points.Add(item);
}
PathSegmentCollection myPathSegmentCollection = new PathSegmentCollection();
myPathSegmentCollection.Add(lineSegment);
PathFigure pathFigure = new PathFigure();
pathFigure.IsClosed = isClose;
pathFigure.IsFilled = isFill;
pathFigure.StartPoint = points[0];
pathFigure.Segments = myPathSegmentCollection;
PathFigureCollection pthFigureCollection = new PathFigureCollection();
pthFigureCollection.Add(pathFigure);
PathGeometry pthGeometry = new PathGeometry();
pthGeometry.Figures = pthFigureCollection;
return pthGeometry;
}
}
}