| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- using System;
- using System.IO;
- using System.Windows;
- using SHJX.Service.View.View;
- using SHJX.Service.Common.ReadXML;
- using SHJX.Service.Common.Extend;
- using System.Runtime.InteropServices;
- using SHJX.Service.Common.UserDelegate;
- using SHJX.Service.Common.ExtendElement;
- using SHJX.Service.ModelView;
- using SHJX.Service.Common.Logging;
- using Microsoft.Extensions.Logging;
- namespace SHJX.Service.View
- {
- /// <summary>
- /// MainForm.xaml 的交互逻辑
- /// </summary>
- public partial class MainForm : Window
- {
- private static readonly ILogger logger = LogFactory.BuildLogger(typeof(MainForm));
- private readonly ReadConfigUtil _config;
- private readonly MainViewModel _viewModel;
- public readonly MainViewModel Maincontroller;
- private SettingForm _settingForm;
- private AboutForm _about;
- private ManualForm _manual;
- private TemplateWindow _template;
- private ModifyResult _modifyResult;
- /// <summary>
- /// 配置文件读取
- /// </summary>
- public MainForm()
- {
- WindowsSleep(true);
- InitializeComponent();
- ResizeMode = ResizeMode.CanMinimize;
- }
- private int cameraNum = 0;
- public MainForm(ReadConfigUtil config)
- {
- try
- {
- WindowsSleep(true);
- _viewModel = new MainViewModel(config, out int camera);
- cameraNum = camera;
- DataContext = _viewModel;
- Maincontroller= _viewModel;
- Messager.Register("ScreenShot", ScreenShot);
- Messager.Register("ShowWindow", ShowWindow);
- Messager.Register("SystemMinSize", SystemMinSize);
- InitializeComponent();
- _config = config;
- ResizeMode = ResizeMode.CanMinimize;
- }
- catch (Exception ex)
- {
- logger.LogError(ex.Message);
- }
- }
- private void WaterMachineOpenClick(object sender, EventArgs e)
- {
- try
- {
- UMessageBox.Info("请确认:\r\r 1: 【冷凝水机】\r 2:【空气压缩机】\r\r两者均已开启!!!\r否则对设备造成严重损害!").Equals(MessageBoxResult.Yes);
- this.beiginTask.IsEnabled = true;
- }
- catch (Exception ex)
- {
- logger.LogError(ex.Message);
- }
- }
- private void WaterMachineCloseClick(object sender, EventArgs e)
- {
- try
- {
- this.beiginTask.IsEnabled = false;
- }
- catch (Exception ex)
- {
- logger.LogError(ex.Message);
- }
- }
- #region 窗体休眠
- //定义API函数
- [DllImport("kernel32.dll")]
- private static extern uint SetThreadExecutionState(uint esFlags);
- private const uint ES_SYSTEM_REQUIRED = 0x00000001;
- private const uint ES_DISPLAY_REQUIRED = 0x00000002;
- private const uint ES_CONTINUOUS = 0x80000000;
- public static void WindowsSleep(bool sleepOrNot)
- {
- if (sleepOrNot)
- {
- SetThreadExecutionState(ES_CONTINUOUS | ES_DISPLAY_REQUIRED | ES_SYSTEM_REQUIRED);//阻止休眠时调用
- }
- else
- {
- //恢复休眠时调用
- SetThreadExecutionState(ES_CONTINUOUS);
- }
- }
- #endregion
- #region 窗体最大化
- private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
- {
- if (this.ActualHeight > SystemParameters.WorkArea.Height ||
- this.ActualWidth > SystemParameters.WorkArea.Width)
- {
- WindowState = WindowState.Normal;
- btnMaximize_Click(null, null);
- }
- }
- /// <summary>
- /// 最大化
- /// </summary>
- private void btnMaximize_Click(object sender, RoutedEventArgs e)
- {
- this.Left = 0; //设置位置
- this.Top = 0;
- Rect rc = SystemParameters.WorkArea; //获取工作区大小
- this.Width = rc.Width;
- this.Height = rc.Height;
- }
- #endregion
- private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
- {
- WindowsSleep(false);
- }
- private void ScreenCapture_Click(object sender, RoutedEventArgs e)
- {
- Dispatcher.Invoke(new Action(() => ScreenShot(null)));
- }
- public void ScreenShot(object obj)
- {
- var bit = this.ScreenConvertToBitmap();
- DirectoryInfo d = new DirectoryInfo(Path.Combine(Directory.GetCurrentDirectory(), $"cache\\{DateTime.Now:yyyy-MM-dd}"));
- if (!d.Exists) d.Create();
- var photoName = $"软件截图{DateTime.Now:yyyyMMddHHmmssfff}.png";
- bit.Save(Path.Combine(d.FullName, photoName));
- UMessageBox.SuccessTip("截图保存成功!");
- }
- private void SystemMinSize(object obj)
- {
- WindowState = WindowState.Minimized;
- }
- public void ShowWindow(object name)
- {
- switch (name.ToString())
- {
- case "manual":
- _manual = new ManualForm(_config);
- _manual.ShowDialog();
- break;
- case "setting":
- _settingForm = new SettingForm(Maincontroller, _config);
- _settingForm.ShowDialog();
- break;
- case "about":
- _about = new AboutForm(_config);
- _about.ShowDialog();
- break;
- case "template":
- _template = new TemplateWindow(_config);
- _template.ShowDialog();
- break;
- }
- }
- private void cameraNumCombobox_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
- {
- //if (!cameraNumCombobox.IsLoaded)
- // return;
- //if (e.RemovedItems.Count >0)
- //{
- // if (cameraNum.ToString() == cameraNumCombobox.Text.ToString())
- // {
- // }
- // else
- // {
- // cameraNumCombobox.Text = cameraNum.ToString();
- // UMessageBox.Error("只检测到" + cameraNum + "个相机,请检查相机的连接和相机参数配置是否有问题");
- // }
- //}
- }
- private void cameraNumCombobox_DropDownClosed(object sender, EventArgs e)
- {
- if (cameraNum.ToString() == cameraNumCombobox.Text.ToString()||cameraNumCombobox.Text == "0")
- {
- }
- else
- {
- cameraNumCombobox.Text = cameraNum.ToString();
- UMessageBox.Error("只检测到" + cameraNum + "个相机," +
- "请检查相机的连接和相机参数配置是否有问题");
- }
-
- }
- private void Label_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
- {
- _modifyResult = new ModifyResult();
- _modifyResult.ShowDialog();
- }
- }
- }
|