|
|
@ -28,62 +28,70 @@ using System.Runtime.CompilerServices; |
|
|
|
using System.Windows; |
|
|
|
using SunlightCentralizedControlManagement_SCCM_.View; |
|
|
|
using LiveChartsCore.SkiaSharpView.Painting.Effects; |
|
|
|
using LiveChartsCore.Drawing; |
|
|
|
using LiveChartsCore.SkiaSharpView.Drawing.Geometries; |
|
|
|
using System.Windows.Documents; |
|
|
|
using System.Reflection; |
|
|
|
|
|
|
|
namespace SunlightCentralizedControlManagement_SCCM_.ViewModel |
|
|
|
{ |
|
|
|
{ |
|
|
|
public partial class ProductionPlanningModel : ObservableObject//ViewModelBase
|
|
|
|
{ |
|
|
|
//x轴时间格式
|
|
|
|
public Axis[] XAxes { get; set; } = |
|
|
|
{ |
|
|
|
new DateTimeAxis(TimeSpan.FromSeconds(5) , date => date.ToString("yyyy-MM-dd HH:mm")) |
|
|
|
{ |
|
|
|
// CrosshairLabelsBackground = SKColors.DarkGray.AsLvcColor(),
|
|
|
|
// CrosshairLabelsPaint = new SolidColorPaint(SKColors.DarkSlateBlue, 1),
|
|
|
|
// CrosshairPaint = new SolidColorPaint(SKColors.DarkSlateGray, 1),
|
|
|
|
{ |
|
|
|
CrosshairLabelsBackground = SKColors.DarkGray.AsLvcColor(), |
|
|
|
CrosshairLabelsPaint = new SolidColorPaint(SKColors.DarkSlateBlue, 1), |
|
|
|
CrosshairPaint = new SolidColorPaint(SKColors.DarkSlateGray, 1), |
|
|
|
}, |
|
|
|
}; |
|
|
|
|
|
|
|
public Axis[] YAxes { get; set; } = |
|
|
|
{ |
|
|
|
new Axis |
|
|
|
{ |
|
|
|
MinLimit = 0, |
|
|
|
// TextSize = 20,
|
|
|
|
LabelsDensity = 1, |
|
|
|
Labels = MainWindowViewModel.Machines.AsEnumerable().Select(row=> row.Field<string>("name")).ToList(),//转换列名为机台
|
|
|
|
|
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
public RectangularSection[] Sections { get; set; } = |
|
|
|
{ |
|
|
|
new RectangularSection |
|
|
|
public ProductionPlanningModel() |
|
|
|
{ |
|
|
|
Yi = 8, |
|
|
|
Yj = 8, |
|
|
|
Stroke = new SolidColorPaint |
|
|
|
var r = new Random(); |
|
|
|
var values1 = new ObservableCollection<ObservablePoint>(); |
|
|
|
|
|
|
|
for (var i = 0; i < 20; i++) |
|
|
|
{ |
|
|
|
Color = SKColors.Red, |
|
|
|
StrokeThickness = 3, |
|
|
|
PathEffect = new DashEffect(new float[] { 6, 6 }) |
|
|
|
values1.Add(new ObservablePoint(r.Next(10, 20), r.Next(0, 20))); |
|
|
|
} |
|
|
|
}, |
|
|
|
new RectangularSection |
|
|
|
{ |
|
|
|
Xi = 4, |
|
|
|
Xj = 6, |
|
|
|
Fill = new SolidColorPaint { Color = SKColors.Blue.WithAlpha(20) } |
|
|
|
}, |
|
|
|
}; |
|
|
|
|
|
|
|
public ISeries[] Series { get; set; } = |
|
|
|
{ |
|
|
|
new ScatterSeries<ObservablePoint> |
|
|
|
{ |
|
|
|
GeometrySize = 10, |
|
|
|
Stroke = new SolidColorPaint ((SKColor)2.2, (float)5.4), |
|
|
|
Fill = null, |
|
|
|
Values = new ObservablePoint[] |
|
|
|
Series = new ISeries[] |
|
|
|
{ |
|
|
|
/* new(2.2, 5.4), new(4.5, 2.5), new(4.2, 7.4), |
|
|
|
new(6.4, 9.9), new(4.2, 9.2), new(5.8, 3.5), |
|
|
|
new(7.3, 5.8), new(8.9, 3.9), new(6.1, 4.6), |
|
|
|
new(9.4, 7.7), new(8.4, 8.5), new(3.6, 9.6), |
|
|
|
new(4.4, 6.3), new(5.8, 4.8), new(6.9, 3.4), |
|
|
|
new(7.6, 1.8), new(8.3, 8.3), new(9.9, 5.2), |
|
|
|
new(8.1, 4.7), new(7.4, 3.9), new(6.8, 2.3)*/ |
|
|
|
} |
|
|
|
// use the second type parameter to specify the geometry to draw for every point
|
|
|
|
// there are already many predefined geometries in the
|
|
|
|
// LiveChartsCore.SkiaSharpView.Drawing.Geometries namespace
|
|
|
|
new ScatterSeries<ObservablePoint, RoundedRectangleGeometry> |
|
|
|
{ |
|
|
|
Values = values1, |
|
|
|
Stroke = null, |
|
|
|
GeometrySize = 10, |
|
|
|
}, |
|
|
|
|
|
|
|
// You can also use SVG paths to draw the geometry
|
|
|
|
// LiveCharts already provides some predefined paths in the SVGPoints class.
|
|
|
|
|
|
|
|
|
|
|
|
// you can declare your own gemetry and use the SkiaSharp api to draw it
|
|
|
|
|
|
|
|
}; |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
public ISeries[] Series { get; set; } |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|