WpfApp/MainWindow.xaml.cs
2025-10-10 15:58:01 +08:00

395 lines
14 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using guoke;
using LiveCharts;
using LiveCharts.Wpf;
using SqlSugar;
using System.Windows;
using System.Windows.Navigation;
using WpfApp.src.view;
namespace WpfApp
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
private readonly LogService log;
private readonly DatabaseService db;
private readonly EventService<GeneralEventArgs> even;
public MainWindow(LogService logService, DatabaseService databaseService, EventService<GeneralEventArgs> 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<double> { 20, 10, 12, 5, 9 }
},
// 标准1
new LineSeries
{
Title = "标准1",
Values = new ChartValues<double> { 5, 5, 5, 5, 5 },
StrokeThickness = 2,
Fill = System.Windows.Media.Brushes.Transparent
},
// 标准2
new LineSeries
{
Title = "标准2",
Values = new ChartValues<double> { 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<double> { 30, 30, 30, 30, 30 },
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<double> { 20, 10, 12, 5, 9 }
},
// 标准1
new LineSeries
{
Title = "标准1",
Values = new ChartValues<double> { 5, 5, 5, 5, 5 },
StrokeThickness = 2,
Fill = System.Windows.Media.Brushes.Transparent
},
// 标准2
new LineSeries
{
Title = "标准2",
Values = new ChartValues<double> { 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<double> { 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<double> { 20, 10, 12, 5, 9 }
},
// 标准1
new LineSeries
{
Title = "标准1",
Values = new ChartValues<double> { 5, 5, 5, 5, 5 },
StrokeThickness = 2,
Fill = System.Windows.Media.Brushes.Transparent
},
// 标准2
new LineSeries
{
Title = "标准2",
Values = new ChartValues<double> { 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<double> { 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<aaa>();//检查并创建表
even.TriggerEvent("GeneralEvent", this, new GeneralEventArgs("测试", 1));
}
public class aaa : BaseTableModel
{
}
/// <summary>
/// 设置窗体标题的函数
/// </summary>
/// <param name="newTitle"></param>
public void SetWindowTitle(string newTitle)
{
this.Title = newTitle;
}
// 在 MainWindow 内部
/// <summary>
/// 按钮点击触发文件页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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();
}
/// <summary>
/// 按钮点击触发配置页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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();
}
/// <summary>
/// 按钮点击触发标准基准页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void OnStandardPageButtonClick(object sender, RoutedEventArgs e)
{
StandardPage standardPage = new StandardPage();
NavigationWindow navWin = new NavigationWindow();
navWin.Width = 1440;
navWin.Height = 960;
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();
}
/// <summary>
/// 按钮点击触发Gauge页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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();
}
/// <summary>
/// 按钮点击触发CgCgk页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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();
}
/// <summary>
/// 按钮点击触发系统设置页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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();
}
/// <summary>
/// 按钮点击触发关闭页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void OnCloseMainWindowButtonClick(object sender, RoutedEventArgs e)
{
this.Close();
}
/// <summary>
/// 测试按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void OnDemoButtonClick(object sender, RoutedEventArgs e)
{
//LineBarChartDemo lineBarChartDemo = new LineBarChartDemo();
//lineBarChartDemo.Show();
}
}
}