diff --git a/STranslate/View/MainWindow.xaml.cs b/STranslate/View/MainWindow.xaml.cs index b0d52cd..3fbd424 100644 --- a/STranslate/View/MainWindow.xaml.cs +++ b/STranslate/View/MainWindow.xaml.cs @@ -3,6 +3,9 @@ using STranslate.ViewModel; using System; using System.IO; using System.Windows; +using System.Windows.Forms; +using Application = System.Windows.Application; +using MessageBox = System.Windows.MessageBox; namespace STranslate.View { @@ -61,59 +64,66 @@ namespace STranslate.View private string _version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); - public System.Windows.Forms.NotifyIcon NotifyIcon = new System.Windows.Forms.NotifyIcon(); + public readonly NotifyIcon NotifyIcon = new NotifyIcon(); - #region TrayIcon + #region Initial TrayIcon private void InitialTray() { _version = HandleVersion(_version); - var app = Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetEntryAssembly().Location); - NotifyIcon.Text = $"{app} {_version}"; - NotifyIcon.Icon = new System.Drawing.Icon(Application.GetResourceStream(new Uri("Images/translate.ico", UriKind.Relative)).Stream); + var app = Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetEntryAssembly()?.Location); + NotifyIcon.Text = $@"{app} {_version}"; + var stream = Application + .GetResourceStream(new Uri("Images/translate.ico", UriKind.Relative))?.Stream; + if (stream != null) + NotifyIcon.Icon = new System.Drawing.Icon(stream); NotifyIcon.Visible = true; - NotifyIcon.BalloonTipText = $"{app} already started..."; + NotifyIcon.BalloonTipText = $@"{app} already started..."; NotifyIcon.ShowBalloonTip(500); NotifyIcon.MouseDoubleClick += InputTranslateMenuItem_Click; + var inputTranslateMenuItemBtn = new MenuItem("输入翻译\tAlt+A"); + inputTranslateMenuItemBtn.Click += InputTranslateMenuItem_Click; - System.Windows.Forms.MenuItem InputTranslateMenuItemBTN = new System.Windows.Forms.MenuItem("输入翻译"); - InputTranslateMenuItemBTN.Click += new EventHandler(InputTranslateMenuItem_Click); + var screenshotTranslateMenuItemBtn = new MenuItem("截图翻译\tAlt+S"); + screenshotTranslateMenuItemBtn.Click += ScreenshotTranslateMenuItem_Click; - System.Windows.Forms.MenuItem ScreenshotTranslateMenuItemBTN = new System.Windows.Forms.MenuItem("截图翻译"); - ScreenshotTranslateMenuItemBTN.Click += new EventHandler(ScreenshotTranslateMenuItem_Click); - - System.Windows.Forms.MenuItem CrossWordTranslateMenuItemBTN = new System.Windows.Forms.MenuItem("划词翻译"); - //CrossWordTranslateMenuItemBTN.Click += new EventHandler(CrossWordTranslateMenuItem_Click); + var crossWordTranslateMenuItemBtn = new MenuItem("划词翻译\tAlt+D"); + //CrossWordTranslateMenuItemBTN.Click += CrossWordTranslateMenuItem_Click; //当失去焦点后无法从托盘处获取选中文本 - CrossWordTranslateMenuItemBTN.Enabled = false; + crossWordTranslateMenuItemBtn.Enabled = false; - System.Windows.Forms.MenuItem OpenMainWinBTN = new System.Windows.Forms.MenuItem("显示主界面"); - OpenMainWinBTN.Click += new EventHandler(OpenMainWin_Click); + var openMainWinBtn = new MenuItem("显示主界面\tAlt+G"); + openMainWinBtn.Click += OpenMainWin_Click; - System.Windows.Forms.MenuItem CheckUpdateBTN = new System.Windows.Forms.MenuItem("检查更新"); - CheckUpdateBTN.Click += CheckUpdateBTN_Click; + var checkUpdateBtn = new MenuItem("检查更新"); + checkUpdateBtn.Click += CheckUpdateBTN_Click; - System.Windows.Forms.MenuItem AutoStartBTN = new System.Windows.Forms.MenuItem("开机自启"); - AutoStartBTN.Click += new EventHandler(AutoStart_Click); + var autoStartBtn = new MenuItem("开机自启"); + autoStartBtn.Click += AutoStart_Click; - AutoStartBTN.Checked = StartupHelper.IsStartup(); + autoStartBtn.Checked = StartupHelper.IsStartup(); - System.Windows.Forms.MenuItem ExitBTN = new System.Windows.Forms.MenuItem("退出"); - ExitBTN.Click += new EventHandler(Exit_Click); + var exitBtn = new MenuItem("退出"); + exitBtn.Click += Exit_Click; - System.Windows.Forms.MenuItem[] childen = new System.Windows.Forms.MenuItem[] { - InputTranslateMenuItemBTN, - ScreenshotTranslateMenuItemBTN, - CrossWordTranslateMenuItemBTN, - OpenMainWinBTN, - CheckUpdateBTN, - AutoStartBTN, - ExitBTN, + var items = new MenuItem[] { + inputTranslateMenuItemBtn, + screenshotTranslateMenuItemBtn, + crossWordTranslateMenuItemBtn, + openMainWinBtn, + checkUpdateBtn, + autoStartBtn, + exitBtn, }; - NotifyIcon.ContextMenu = new System.Windows.Forms.ContextMenu(childen); + NotifyIcon.ContextMenu = new ContextMenu(items); } - private string HandleVersion(string version) + /// + /// 同步Github版本命名 + /// + /// + /// + private static string HandleVersion(string version) { var ret = string.Empty; ret = version.Substring(0, version.Length - 2); @@ -123,7 +133,7 @@ namespace STranslate.View } /// - /// 检查更新 + /// 检查更新 by https://github.com/Planshit/Tai /// /// /// @@ -131,13 +141,13 @@ namespace STranslate.View { try { - string updaterExePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, + var updaterExePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Updater.exe"); - string updaterCacheExePath = Path.Combine( + var updaterCacheExePath = Path.Combine( AppDomain.CurrentDomain.BaseDirectory, "Updater", "Updater.exe"); - string updateDirPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Updater"); + var updateDirPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Updater"); if (!Directory.Exists(updateDirPath)) { Directory.CreateDirectory(updateDirPath); @@ -178,7 +188,7 @@ namespace STranslate.View { if (StartupHelper.IsStartup()) StartupHelper.UnSetStartup(); else StartupHelper.SetStartup(); - (sender as System.Windows.Forms.MenuItem).Checked = StartupHelper.IsStartup(); + ((MenuItem)sender).Checked = StartupHelper.IsStartup(); } private void Exit_Click(object sender, EventArgs e)