using EC.UsingEventAggregator;
using EC.Utils;
using ECMonitor.Code.SysemNotifyIcon;
using Prism.Events;
using Prism.Regions;
using System;
using System.Collections.Generic;
using System.ComponentModel;
//using System.Drawing;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
namespace ECMonitor
{
///
/// Interaction logic for MainWindow.xaml
///
public partial class MainWindow : Window
{
private IRegionManager _regionManager;
private IEventAggregator _ea;
public MainWindow(IRegionManager regionManager, IEventAggregator ea)
{
_regionManager = regionManager;
_ea = ea;
this.ResizeMode = ResizeMode.CanMinimize;
InitializeComponent();
//var paletteHelper = new PaletteHelper();
//var theme = paletteHelper.GetTheme();
//theme.SetBaseTheme(Theme.Dark);
//paletteHelper.SetTheme(theme);
//系统托盘
SystemTrayParameter pars = new SystemTrayParameter("zgx.ico", "守护中", "", 0, notifyIcon_MouseDoubleClick);
this.notifyIcon = WPFSystemTray.SetSystemTray(pars, GetList());
_ea.GetEvent().Subscribe(MessageReceived);
FLogger.SubLog += SubShowMessage;
FLogger.SubLog += SaveLog;
}
#region PageEvent
///
/// 引发窗口关闭前响应,可阻止系统关闭
///
///
protected override void OnClosing(CancelEventArgs e)
{
if (!EXIT_APP)
{
e.Cancel = true;
this.ShowInTaskbar = false;
HideWindow();
}
}
///
/// 窗口关闭前响应,不可阻止系统关闭
///
///
protected override void OnClosed(EventArgs e)
{
base.OnClosed(e);
//关闭系统托盘
notifyIcon.Dispose();
}
#endregion PageEvent
#region 系统托盘
private bool EXIT_APP = false;
private System.Windows.Forms.NotifyIcon notifyIcon;
//托盘右键菜单集合
private List GetList()
{
List ls = new List();
ls.Add(new SystemTrayMenu() { Txt = "打开主面板", Icon = "", Click = mainWin_Click });
ls.Add(new SystemTrayMenu() { Txt = "退出", Icon = "/img/exit.png", Click = Exit_Click });
return ls;
}
//双击事件
private void notifyIcon_MouseDoubleClick(object sender, System.Windows.Forms.MouseEventArgs e)
{
ShowWindow();
}
#region 托盘右键菜单
//打开主面板
private void mainWin_Click(object sender, EventArgs e)
{
ShowWindow();
}
//退出
private void Exit_Click(object sender, EventArgs e)
{
EXIT_APP = true;
this.Close();
//System.Windows.Forms.Application.ExitThread();
Environment.Exit(0);
// System.Windows.Application.Current.Shutdown();
}
public void ShowWindow()
{
this.Dispatcher.Invoke(new Action(() =>
{
if (this.WindowState == WindowState.Minimized)
{
this.WindowState = WindowState.Normal;
}
this.ShowInTaskbar = true;
this.Show();
this.Activate();
}));
}
private void HideWindow()
{
//this.WindowState = WindowState.Minimized;
this.Hide();
this.notifyIcon.ShowBalloonTip(3000, "", "程序在后台运行中,双击图标打开", System.Windows.Forms.ToolTipIcon.None); //弹出气泡提示
}
#endregion 托盘右键菜单
#endregion 系统托盘
#region 系统按钮
private void btnClose_Click(object sender, RoutedEventArgs e)
{
this.Close();
// Exit_Click(sender, e);
}
private void SetFormSize()
{
double x1 = SystemParameters.PrimaryScreenWidth;//得到屏幕整体宽度
double y1 = SystemParameters.PrimaryScreenHeight;//得到屏幕整体高度
double xy = x1 + y1;
x1 = x1 * 0.9;
y1 = y1 * 0.9;
this.Width = x1;
this.Height = y1;
}
private void btnMax_Click(object sender, RoutedEventArgs e)
{
if (this.WindowState == WindowState.Maximized)
{
this.WindowState = WindowState.Normal;
}
else
{
this.WindowState = WindowState.Maximized;
}
}
private void btnMin_Click(object sender, RoutedEventArgs e)
{
this.WindowState = WindowState.Minimized;
}
private void DockPanel_MouseMove(object sender, MouseEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
this.DragMove();
}
}
#endregion 系统按钮
#region top 按钮颜色
private SolidColorBrush barkgroudcolor = new SolidColorBrush(Color.FromRgb(0x4c, 0x8b, 0xb7));
private void btnVodieo_Click(object sender, RoutedEventArgs e)
{
btnVodieo.Background = barkgroudcolor;
btnSet.Background = Brushes.Transparent;
}
private void btnSet_Click(object sender, RoutedEventArgs e)
{
btnVodieo.Background = Brushes.Transparent;
btnSet.Background = barkgroudcolor;
}
#endregion top 按钮颜色
#region 统一底部 弹窗提示
public void MessageReceived(LogModel log)
{
MainSnackbar.MessageQueue?.Enqueue(log.message);
}
//public async Task