diff --git a/View/ProductionPlanningView.xaml b/View/ProductionPlanningView.xaml index cc3bb3d..85316ab 100644 --- a/View/ProductionPlanningView.xaml +++ b/View/ProductionPlanningView.xaml @@ -21,7 +21,7 @@ - + diff --git a/View/ProductionPlanningView.xaml.cs b/View/ProductionPlanningView.xaml.cs index 0ef2a4a..e78f0bc 100644 --- a/View/ProductionPlanningView.xaml.cs +++ b/View/ProductionPlanningView.xaml.cs @@ -44,6 +44,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View { InitializeComponent(); DataContext = new ProductionPlanningModel(); + ch.ZoomMode = LiveChartsCore.Measure.ZoomAndPanMode.PanX | LiveChartsCore.Measure.ZoomAndPanMode.ZoomY; } private SQLiteHelper SQLiteHelpers = null; //定义数据库 diff --git a/ViewModel/ProductionPlanningModel.cs b/ViewModel/ProductionPlanningModel.cs index c097c15..849a6e1 100644 --- a/ViewModel/ProductionPlanningModel.cs +++ b/ViewModel/ProductionPlanningModel.cs @@ -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("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(); + + 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 - { - 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 + { + 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; } } }