using guoke;
using LiveCharts;
using LiveCharts.Wpf;
using SqlSugar;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Navigation;
using WpfApp.src.components;
using WpfApp.src.config;
using WpfApp.src.view;
using WpfApp.Utils;
namespace WpfApp;
///
/// Interaction logic for MainWindow.xaml
///
public partial class MainWindow : Window
{
private readonly LogService log;
private readonly DatabaseService db;
private readonly EventService even;
public MainWindow(LogService logService, DatabaseService databaseService, EventService eventService)
{
InitializeComponent();
log = logService;
db = databaseService;
even = eventService;
// 记录窗口初始化日志
log.Info("MainWindow", "主窗口已通过依赖注入初始化");
log.Info("窗体启动");
even.AddEventHandler("GeneralEvent", (m, d) =>
{
log.Info($"接收到事件:{d.Data}");
});
SetWindowTitle("FMSDGAUGE");
var labels = new[] { "13:27 23", "13:27 45", "13:27 49", "13:27 50", "13:27 55" };
var config1 = new ChartConfig
{
ColumnData = new List { 20, 10, 12, 5, 9 },
Labels = new List(labels),
LineConfigs = new List
{
new LineConfig { Title = "标准1", Values = new List { 5,5,5,5,5 }, Stroke = Brushes.Blue },
new LineConfig { Title = "标准2", Values = new List { 10,10,10,10,10 }, Stroke = Brushes.Green },
new LineConfig { Title = "标准3", Values = new List { 30,30,30,30,30 }, Stroke = Brushes.Red, Unit = "A" }
}
};
InitChart.InitCartesianChart(myChart, config1);
InitChart.InitCartesianChart(myChart1, config1);
InitChart.InitCartesianChart(myChart2, config1);
}
private void Button_Click(object sender, RoutedEventArgs e)
{
SqlSugarScope scope = db.GetScope("LocalData");
scope.guokeCheckToCreate();//检查并创建表
even.TriggerEvent("GeneralEvent", this, new GeneralEventArgs("测试", 1));
}
public class aaa : BaseTableModel
{
}
///
/// 设置窗体标题的函数
///
///
public void SetWindowTitle(string newTitle)
{
this.Title = newTitle;
}
#region 菜单点击按钮
private void OnFilePageButtonClick(object sender, RoutedEventArgs e)
{
WindowHelper.ShowPageDialog(new FilePage(), "记录列表", 810, 600);
}
private void OnConfigPageButtonClick(object sender, RoutedEventArgs e)
{
WindowHelper.ShowPageDialog(new ConfigPage(), "配置", 972, 648);
}
private void OnStandardPageButtonClick(object sender, RoutedEventArgs e)
{
WindowHelper.ShowPageDialog(new StandardPage(), "主标定", 972, 648, isResizable: true);
}
private void OnGaugePageButtonClick(object sender, RoutedEventArgs e)
{
WindowHelper.ShowPageDialog(new GaugePage(), "Gauge R&&R", 1080, 720);
}
private void OnCgCgkPageButtonClick(object sender, RoutedEventArgs e)
{
WindowHelper.ShowPageDialog(new CgCgkPage(), "CgCgk", 972, 648, isResizable: true);
}
private void OnSysSetPageButtonClick(object sender, RoutedEventArgs e)
{
WindowHelper.ShowPageDialog(new SysSetPage(), "系统设置", 810, 600);
}
#endregion
#region 关闭和测试按钮
///
/// 按钮点击触发关闭页面
///
///
///
private void OnCloseMainWindowButtonClick(object sender, RoutedEventArgs e)
{
this.Close();
}
///
/// 测试按钮
///
///
///
private void OnDemoButtonClick(object sender, RoutedEventArgs e)
{
//LineBarChartDemo lineBarChartDemo = new LineBarChartDemo();
//lineBarChartDemo.Show();
}
///
/// 等级选择下拉框变化事件处理
///
///
///
private void LevelComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (sender is ComboBox comboBox && comboBox.SelectedItem is ComboBoxItem selectedItem)
{
// 根据选择的Tag确定等级
SensorLevel selectedLevel = SensorLevel.Medium; // 默认值
switch (selectedItem.Tag?.ToString())
{
case "Low":
selectedLevel = SensorLevel.Low;
break;
case "Medium":
selectedLevel = SensorLevel.Medium;
break;
case "High":
selectedLevel = SensorLevel.High;
break;
}
// 更新所有传感器图表的等级
Sensor1.Level = selectedLevel;
Sensor2.Level = selectedLevel;
Sensor3.Level = selectedLevel;
}
}
#endregion
}