using guoke;
using LiveCharts;
using LiveCharts.Wpf;
using SqlSugar;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
using WpfApp.src.components;
using WpfApp.src.view;
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}");
});
#region 曲线测试数据
SetWindowTitle("FMSDGAUGE");
// 传感器1
// 初始化Series
myChart.Series = new SeriesCollection
{
// 柱状图
new ColumnSeries
{
Title = "柱状数据",
Values = new ChartValues { 20, 10, 12, 5, 9 }
},
// 标准1
new LineSeries
{
Title = "标准1",
Values = new ChartValues { 5, 5, 5, 5, 5 },
DataLabels = true,
LabelPoint = value => value.Y.ToString("0.##") + " Hz",
StrokeThickness = 2,
Fill = System.Windows.Media.Brushes.Transparent
},
// 标准2
new LineSeries
{
Title = "标准2",
Values = new ChartValues { 10, 10, 10, 10, 10 },
DataLabels = true,
LabelPoint = value => value.Y.ToString("0.##") + " Hz",
//Foreground = System.Windows.Media.Brushes.Blue,// 标签颜色
//FontSize = 14,// 字体大小
// StrokeThickness = 2, // 线条粗细
StrokeThickness = 2,
Stroke = System.Windows.Media.Brushes.Green,
Fill = System.Windows.Media.Brushes.Transparent
},
// 标准3
new LineSeries
{
Title = "标准3",
Values = new ChartValues { 30, 30, 30, 30, 30 },
DataLabels = true,
LabelPoint = value => value.Y.ToString("0.##") + " Hz",
StrokeThickness = 2,
Stroke = System.Windows.Media.Brushes.Red,
Fill = System.Windows.Media.Brushes.Transparent
}
};
// 设置X轴标签
myChart.AxisX.Add(new Axis
{
Title = "",
Labels = new[] { "13:27 23", "13:27 45", "13:27 49", "13:27 50", "13:27 55" }
});
// 设置Y轴
myChart.AxisY.Add(new Axis
{
Title = ""
});
// 传感器2
// 初始化Series
myChart1.Series = new SeriesCollection
{
// 柱状图
new ColumnSeries
{
Title = "柱状数据",
Values = new ChartValues { 20, 10, 12, 5, 9 }
},
// 标准1
new LineSeries
{
Title = "标准1",
Values = new ChartValues { 5, 5, 5, 5, 5 },
StrokeThickness = 2,
Fill = System.Windows.Media.Brushes.Transparent
},
// 标准2
new LineSeries
{
Title = "标准2",
Values = new ChartValues { 10, 10, 10, 10, 10 },
StrokeThickness = 2,
Stroke = System.Windows.Media.Brushes.Green,
Fill = System.Windows.Media.Brushes.Transparent
},
// 标准3
new LineSeries
{
Title = "标准3",
Values = new ChartValues { 30, 30, 30, 30, 30 },
StrokeThickness = 2,
Stroke = System.Windows.Media.Brushes.Red,
Fill = System.Windows.Media.Brushes.Transparent
}
};
// 设置X轴标签
myChart1.AxisX.Add(new Axis
{
Title = "",
Labels = new[] { "13:27 23", "13:27 45", "13:27 49", "13:27 50", "13:27 55" }
});
// 设置Y轴
myChart1.AxisY.Add(new Axis
{
Title = ""
});
// 传感器3
// 初始化Series
myChart2.Series = new SeriesCollection
{
// 柱状图
new ColumnSeries
{
Title = "柱状数据",
Values = new ChartValues { 20, 10, 12, 5, 9 }
},
// 标准1
new LineSeries
{
Title = "标准1",
Values = new ChartValues { 5, 5, 5, 5, 5 },
StrokeThickness = 2,
Fill = System.Windows.Media.Brushes.Transparent
},
// 标准2
new LineSeries
{
Title = "标准2",
Values = new ChartValues { 10, 10, 10, 10, 10 },
StrokeThickness = 2,
Stroke = System.Windows.Media.Brushes.Green,
Fill = System.Windows.Media.Brushes.Transparent
},
// 标准3
new LineSeries
{
Title = "标准3",
Values = new ChartValues { 30, 30, 30, 30, 30 },
StrokeThickness = 2,
Stroke = System.Windows.Media.Brushes.Red,
Fill = System.Windows.Media.Brushes.Transparent
}
};
// 设置X轴标签
myChart2.AxisX.Add(new Axis
{
Title = "",
Labels = new[] { "13:27 23", "13:27 45", "13:27 49", "13:27 50", "13:27 55" }
});
// 设置Y轴
myChart2.AxisY.Add(new Axis
{
Title = ""
});
#endregion
}
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 菜单点击按钮
// 在 MainWindow 内部
///
/// 按钮点击触发文件页面
///
///
///
private void OnFilePageButtonClick(object sender, RoutedEventArgs e)
{
FilePage filePage = new FilePage();
NavigationWindow navWin = new NavigationWindow();
navWin.Width = 810;
navWin.Height = 600;
navWin.ResizeMode = ResizeMode.NoResize;
navWin.Content = filePage;
navWin.ShowsNavigationUI = false;
navWin.Title = "记录列表";
// ✅ 新增:设定父窗口、样式与居中弹出
navWin.Owner = Application.Current.MainWindow; // 绑定主窗口
navWin.WindowStartupLocation = WindowStartupLocation.CenterOwner; // 居中弹出
navWin.WindowStyle = WindowStyle.ToolWindow;
// ✅ 改这里:Show() 改为 ShowDialog() 实现模态窗口
navWin.ShowDialog();
}
///
/// 按钮点击触发配置页面
///
///
///
private void OnConfigPageButtonClick(object sender, RoutedEventArgs e)
{
ConfigPage configPage = new ConfigPage();
NavigationWindow navWin = new NavigationWindow();
navWin.Content = configPage;
navWin.ShowsNavigationUI = false;
navWin.Width = 972;
navWin.Height = 648;
navWin.Title = "配置";
navWin.ResizeMode = ResizeMode.NoResize;
// ✅ 新增:设定父窗口、样式与居中弹出
navWin.Owner = Application.Current.MainWindow; // 绑定主窗口
navWin.WindowStartupLocation = WindowStartupLocation.CenterOwner; // 居中弹出
navWin.WindowStyle = WindowStyle.ToolWindow;
// ✅ 改这里:Show() 改为 ShowDialog() 实现模态窗口
navWin.ShowDialog();
}
///
/// 按钮点击触发标准基准页面
///
///
///
private void OnStandardPageButtonClick(object sender, RoutedEventArgs e)
{
StandardPage standardPage = new StandardPage();
NavigationWindow navWin = new NavigationWindow();
navWin.Width = 972;
navWin.Height = 648;
//navWin.ResizeMode = ResizeMode.NoResize;
navWin.Content = standardPage;
navWin.ShowsNavigationUI = false;
navWin.Title = "主标定";
// ✅ 新增:设定父窗口、样式与居中弹出
navWin.Owner = Application.Current.MainWindow; // 绑定主窗口
navWin.WindowStartupLocation = WindowStartupLocation.CenterOwner; // 居中弹出
navWin.WindowStyle = WindowStyle.ToolWindow;
// ✅ 改这里:Show() 改为 ShowDialog() 实现模态窗口
navWin.ShowDialog();
}
///
/// 按钮点击触发Gauge页面
///
///
///
private void OnGaugePageButtonClick(object sender, RoutedEventArgs e)
{
GaugePage gaugePage = new GaugePage();
NavigationWindow navWin = new NavigationWindow();
navWin.Content = gaugePage;
navWin.ShowsNavigationUI = false;
navWin.Width = 1080;
navWin.Height = 720;
navWin.Title = "Gauge R&&R";
// ✅ 新增:设定父窗口、样式与居中弹出
navWin.Owner = Application.Current.MainWindow; // 绑定主窗口
navWin.WindowStartupLocation = WindowStartupLocation.CenterOwner; // 居中弹出
navWin.WindowStyle = WindowStyle.ToolWindow;
// ✅ 改这里:Show() 改为 ShowDialog() 实现模态窗口
navWin.ShowDialog();
}
///
/// 按钮点击触发CgCgk页面
///
///
///
private void OnCgCgkPageButtonClick(object sender, RoutedEventArgs e)
{
CgCgkPage cgCgkPage = new CgCgkPage();
NavigationWindow navWin = new NavigationWindow();
navWin.Content = cgCgkPage;
navWin.ShowsNavigationUI = false;
navWin.Title = "CgCgk";
// ✅ 新增:设定父窗口、样式与居中弹出
navWin.Owner = Application.Current.MainWindow; // 绑定主窗口
navWin.WindowStartupLocation = WindowStartupLocation.CenterOwner; // 居中弹出
navWin.WindowStyle = WindowStyle.ToolWindow;
// ✅ 改这里:Show() 改为 ShowDialog() 实现模态窗口
navWin.ShowDialog();
}
///
/// 按钮点击触发系统设置页面
///
///
///
private void OnSysSetPageButtonClick(object sender, RoutedEventArgs e)
{
SysSetPage sysSetPage = new SysSetPage();
NavigationWindow navWin = new NavigationWindow();
navWin.Width = 810;
navWin.Height = 600;
navWin.ResizeMode = ResizeMode.NoResize;
navWin.Content = sysSetPage;
navWin.ShowsNavigationUI = false;
navWin.Title = "系统设置";
// ✅ 新增:设定父窗口、样式与居中弹出
navWin.Owner = Application.Current.MainWindow; // 绑定主窗口
navWin.WindowStartupLocation = WindowStartupLocation.CenterOwner; // 居中弹出
navWin.WindowStyle = WindowStyle.ToolWindow;
// ✅ 改这里:Show() 改为 ShowDialog() 实现模态窗口
navWin.ShowDialog();
}
#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
}
}