This commit is contained in:
sc committed 2024-12-22 23:56:54 +08:00
commit c70c5ce1fb
3 files changed
+50 -41

No files matched your search

+1 -1
View File
@@ -21,7 +21,7 @@
<RowDefinition Height="60"/> <RowDefinition Height="60"/>
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Grid Grid.Row="0"> <Grid Grid.Row="0">
<lvc:CartesianChart XAxes="{Binding XAxes}" /> <lvc:CartesianChart x:Name="ch" XAxes="{Binding XAxes}" YAxes="{Binding YAxes}" Series="{Binding Series}" />
</Grid> </Grid>
+1
View File
@@ -44,6 +44,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
{ {
InitializeComponent(); InitializeComponent();
DataContext = new ProductionPlanningModel(); DataContext = new ProductionPlanningModel();
ch.ZoomMode = LiveChartsCore.Measure.ZoomAndPanMode.PanX | LiveChartsCore.Measure.ZoomAndPanMode.ZoomY;
} }
private SQLiteHelper SQLiteHelpers = null; //定义数据库 private SQLiteHelper SQLiteHelpers = null; //定义数据库
+48 -40
View File
@@ -28,62 +28,70 @@ using System.Runtime.CompilerServices;
using System.Windows; using System.Windows;
using SunlightCentralizedControlManagement_SCCM_.View; using SunlightCentralizedControlManagement_SCCM_.View;
using LiveChartsCore.SkiaSharpView.Painting.Effects; using LiveChartsCore.SkiaSharpView.Painting.Effects;
using LiveChartsCore.Drawing;
using LiveChartsCore.SkiaSharpView.Drawing.Geometries;
using System.Windows.Documents;
using System.Reflection;
namespace SunlightCentralizedControlManagement_SCCM_.ViewModel namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
{ {
public partial class ProductionPlanningModel : ObservableObject//ViewModelBase public partial class ProductionPlanningModel : ObservableObject//ViewModelBase
{ {
//x轴时间格式 //x轴时间格式
public Axis[] XAxes { get; set; } = public Axis[] XAxes { get; set; } =
{ {
new DateTimeAxis(TimeSpan.FromSeconds(5) , date => date.ToString("yyyy-MM-dd HH:mm")) new DateTimeAxis(TimeSpan.FromSeconds(5) , date => date.ToString("yyyy-MM-dd HH:mm"))
{ {
// CrosshairLabelsBackground = SKColors.DarkGray.AsLvcColor(), CrosshairLabelsBackground = SKColors.DarkGray.AsLvcColor(),
// CrosshairLabelsPaint = new SolidColorPaint(SKColors.DarkSlateBlue, 1), CrosshairLabelsPaint = new SolidColorPaint(SKColors.DarkSlateBlue, 1),
// CrosshairPaint = new SolidColorPaint(SKColors.DarkSlateGray, 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
{
Yi = 8,
Yj = 8,
Stroke = new SolidColorPaint
{
Color = SKColors.Red,
StrokeThickness = 3,
PathEffect = new DashEffect(new float[] { 6, 6 })
}
},
new RectangularSection
{
Xi = 4,
Xj = 6,
Fill = new SolidColorPaint { Color = SKColors.Blue.WithAlpha(20) }
},
};
public ISeries[] Series { get; set; } = public ProductionPlanningModel()
{ {
new ScatterSeries<ObservablePoint> var r = new Random();
{ var values1 = new ObservableCollection<ObservablePoint>();
GeometrySize = 10,
Stroke = new SolidColorPaint ((SKColor)2.2, (float)5.4), for (var i = 0; i < 20; i++)
Fill = null,
Values = new ObservablePoint[]
{ {
/* new(2.2, 5.4), new(4.5, 2.5), new(4.2, 7.4), values1.Add(new ObservablePoint(r.Next(10, 20), r.Next(0, 20)));
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)*/
} }
Series = new ISeries[]
{
// 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; }
} }
} }