using LiveChartsCore.SkiaSharpView; using LiveChartsCore; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using CommunityToolkit.Mvvm.ComponentModel; using LiveChartsCore.Kernel.Sketches; using LiveChartsCore.SkiaSharpView.Painting; using ScottPlot.Colormaps; using System.Drawing; using System.Windows.Media.TextFormatting; using System.Xml.Linq; using SkiaSharp; using LiveChartsCore.Defaults; using static System.Net.WebRequestMethods; using System.Collections.ObjectModel; using DyeingComputer.Properties; using LiveChartsCore.Measure; using LiveChartsCore.Motion; using DyeingComputer.Properties; using static DyeingComputer.UserClass.SqliteHelper; using TouchSocket.Core; using System.ComponentModel; using System.Runtime.CompilerServices; using System.Windows; using DyeingComputer.View; namespace DyeingComputer.ViewModel { public partial class CurveTempModel : ObservableObject//ViewModelBase { public static ISeries[] Series { get; set; } public static ObservableCollection ObservableValues { get; set; } //x轴时间格式 public Axis[] XAxes { get; set; } = { new DateTimeAxis(TimeSpan.FromSeconds(5) , date => date.ToString("HH:mm")) { CrosshairLabelsBackground = SKColors.DarkGray.AsLvcColor(), CrosshairLabelsPaint = new SolidColorPaint(SKColors.DarkSlateBlue, 1), CrosshairPaint = new SolidColorPaint(SKColors.DarkSlateGray, 1), }, }; //颜色 private static readonly SKColor s_blue = new SKColor(25, 118, 210); private static readonly SKColor s_blue_0 = new SKColor(25, 18, 210); private static readonly SKColor s_blue_1 = new SKColor(25, 118, 170); private static readonly SKColor s_blue_2 = new SKColor(25, 118, 130); private static readonly SKColor s_blue_3 = new SKColor(25, 118, 90); private static readonly SKColor s_blue_4 = new SKColor(25, 118, 50); private static readonly SKColor s_red = new SKColor(229, 57, 53); private static readonly SKColor s_red_1 = new SKColor(189, 57, 53); private static readonly SKColor s_red_2 = new SKColor(149, 57, 53); private static readonly SKColor s_red_3 = new SKColor(109, 57, 53); private static readonly SKColor s_yellow = new SKColor(198, 167, 0); public ICartesianAxis[] YAxes { get; set; } ={ new Axis //y在此轴上缩放 { MinLimit =0, MaxLimit =160, Name = Properties.Resources.Temperature +" ( °C )", NameTextSize = 15, NamePaint = new SolidColorPaint(s_blue), NamePadding = new LiveChartsCore.Drawing.Padding(0, 20), Padding = new LiveChartsCore.Drawing.Padding(0, 0, 20, 0), TextSize = 12, LabelsPaint = new SolidColorPaint(s_blue), TicksPaint = new SolidColorPaint(s_blue), SubticksPaint = new SolidColorPaint(s_blue), DrawTicksPath = true, CrosshairSnapEnabled = true, Position = LiveChartsCore.Measure.AxisPosition.Start },//温度轴 }; private static Random _r = new Random(); private static ObservableCollection MST_values; static DataTable CDB = new DataTable(); private static int CDB_Count;//长度 public CurveTempModel() { CDB = View.CurveTemp.dataTable; Curve(); } public static void Curve() { CDB_Count = CDB.Rows.Count; var MTT_items = new List(); var MTL_items = new List(); var MTH_items = new List(); var MST_items = new List(); var MUT_items = new List(); var STTA_items = new List(); var STLA_items = new List(); var STTB_items = new List(); var STLB_items = new List(); var STTC_items = new List(); var STLC_items = new List(); for (var i = 0; i < CDB_Count; i++) { DateTime TIME = Convert.ToDateTime(CDB.Rows[i].Field("Time")); MST_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field("MST"))); } MST_values = new ObservableCollection(MST_items); Series = new ISeries[] { new LineSeries { Name = Resources.Target + Resources.Temperature, Values = MST_values, Stroke = new SolidColorPaint(s_blue_0, 2), GeometrySize = 0, GeometryStroke = new SolidColorPaint(s_blue_0, 2), Fill = null, LineSmoothness = 0, ScalesYAt = 0, }, //目标温度 }; } } }