6 changed files with 298 additions and 2 deletions
@ -0,0 +1,17 @@ |
|||
<UserControl x:Class="DyeingComputer.View.CurveTemp" |
|||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
|||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
|||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" |
|||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" |
|||
xmlns:local="clr-namespace:DyeingComputer.View" |
|||
xmlns:lvc="clr-namespace:LiveChartsCore.SkiaSharpView.WPF;assembly=LiveChartsCore.SkiaSharpView.WPF" |
|||
xmlns:ConvertMoels="clr-namespace:DyeingComputer.ConvertMoels" |
|||
xmlns:viewmodel="clr-namespace:DyeingComputer.ViewModel" |
|||
mc:Ignorable="d" |
|||
d:DataContext="{d:DesignInstance Type=viewmodel:CurveTempModel}" |
|||
d:DesignHeight="300" d:DesignWidth="400"> |
|||
<Grid> |
|||
<lvc:CartesianChart x:Name="OscChart" EasingFunction="{x:Null}" ZoomMode="X" |
|||
Series="{Binding Series}" YAxes="{Binding YAxes}" XAxes="{Binding XAxes}" Margin="0,0,0,0"/> |
|||
</Grid> |
|||
</UserControl> |
@ -0,0 +1,35 @@ |
|||
using DyeingComputer.ViewModel; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Data; |
|||
using System.Linq; |
|||
using System.Text; |
|||
using System.Threading.Tasks; |
|||
using System.Windows; |
|||
using System.Windows.Controls; |
|||
using System.Windows.Data; |
|||
using System.Windows.Documents; |
|||
using System.Windows.Input; |
|||
using System.Windows.Media; |
|||
using System.Windows.Media.Imaging; |
|||
using System.Windows.Navigation; |
|||
using System.Windows.Shapes; |
|||
|
|||
namespace DyeingComputer.View |
|||
{ |
|||
/// <summary>
|
|||
/// CurveDiagram.xaml 的交互逻辑
|
|||
/// </summary>
|
|||
public partial class CurveTemp : UserControl |
|||
{ |
|||
public static DataTable dataTable; |
|||
public CurveTemp(DataTable db) |
|||
{ |
|||
InitializeComponent(); |
|||
|
|||
dataTable = db; |
|||
|
|||
DataContext = new CurveTempModel(); |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,132 @@ |
|||
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<ObservableValue> 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<DateTimePoint> 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<DateTimePoint>(); |
|||
var MTL_items = new List<DateTimePoint>(); |
|||
var MTH_items = new List<DateTimePoint>(); |
|||
var MST_items = new List<DateTimePoint>(); |
|||
var MUT_items = new List<DateTimePoint>(); |
|||
var STTA_items = new List<DateTimePoint>(); |
|||
var STLA_items = new List<DateTimePoint>(); |
|||
var STTB_items = new List<DateTimePoint>(); |
|||
var STLB_items = new List<DateTimePoint>(); |
|||
var STTC_items = new List<DateTimePoint>(); |
|||
var STLC_items = new List<DateTimePoint>(); |
|||
for (var i = 0; i < CDB_Count; i++) |
|||
{ |
|||
DateTime TIME = Convert.ToDateTime(CDB.Rows[i].Field<string>("Time")); |
|||
MST_items.Add(new DateTimePoint(TIME, CDB.Rows[i].Field<double>("MST"))); |
|||
} |
|||
|
|||
MST_values = new ObservableCollection<DateTimePoint>(MST_items); |
|||
|
|||
Series = new ISeries[] |
|||
{ |
|||
|
|||
new LineSeries<DateTimePoint> |
|||
{ |
|||
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, |
|||
}, //目标温度
|
|||
|
|||
}; |
|||
|
|||
|
|||
} |
|||
} |
|||
} |
Loading…
Reference in new issue