diff --git a/Ink Canvas/App.xaml b/Ink Canvas/App.xaml index 4113188..6575dac 100644 --- a/Ink Canvas/App.xaml +++ b/Ink Canvas/App.xaml @@ -227,6 +227,7 @@ diff --git a/Ink Canvas/App.xaml.cs b/Ink Canvas/App.xaml.cs index 57e7300..c1fd08c 100644 --- a/Ink Canvas/App.xaml.cs +++ b/Ink Canvas/App.xaml.cs @@ -53,7 +53,7 @@ namespace Ink_Canvas Environment.Exit(0); } - _taskbar = (TaskbarIcon)FindResource("Taskbar"); + _taskbar = (TaskbarIcon)FindResource("TaskbarTrayIcon"); StartArgs = e.Args; } diff --git a/Ink Canvas/Helpers/EdgeGestureUtil.cs b/Ink Canvas/Helpers/EdgeGestureUtil.cs index 18eb0c5..26a6ffe 100644 --- a/Ink Canvas/Helpers/EdgeGestureUtil.cs +++ b/Ink Canvas/Helpers/EdgeGestureUtil.cs @@ -145,6 +145,7 @@ namespace Ink_Canvas.Helpers //the warning for the whole project, it's a nice warning and we do want //it in other places so we make a nice dummy function to keep the compiler //happy. + // 代码应该在警告级别 4 下编译而不会出现任何警告,但是此结构将给出警告 CS0649:字段 [Fieldname] 从未分配,并且始终具有其默认值。您可以在项目选项中禁用 CS0649,但这将禁用整个项目的警告,这是一个很好的警告,我们确实希望它在其他地方,所以我们制作了一个不错的虚拟函数来让编译器满意。 private void FixCS0649() { Length = 0; diff --git a/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs b/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs index 4e55d92..9d61a6f 100644 --- a/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs +++ b/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs @@ -473,7 +473,6 @@ namespace Ink_Canvas { ToggleSwitchIsEnableFullScreenHelper.IsOn = Settings.Advanced.IsEnableFullScreenHelper; if (Settings.Advanced.IsEnableFullScreenHelper) { - FullScreenHelper.MarkFullscreenWindowTaskbarList(new WindowInteropHelper(this).Handle, true); } diff --git a/Ink Canvas/MainWindow_cs/MW_TrayIcon.cs b/Ink Canvas/MainWindow_cs/MW_TrayIcon.cs index a1fff75..e4c943a 100644 --- a/Ink Canvas/MainWindow_cs/MW_TrayIcon.cs +++ b/Ink Canvas/MainWindow_cs/MW_TrayIcon.cs @@ -12,6 +12,7 @@ using System.Windows.Controls; using System.Windows.Forms.VisualStyles; using System.Windows.Interop; using System.Windows.Media.Animation; +using Hardcodet.Wpf.TaskbarNotification; namespace Ink_Canvas { @@ -94,34 +95,44 @@ namespace Ink_Canvas } private void HideICCMainWindowTrayIconMenuItem_Checked(object sender, RoutedEventArgs e) { + var mi = (MenuItem)sender; var mainWin = (MainWindow)Application.Current.MainWindow; - mainWin.Hide(); - var s = (ContextMenu)_taskbar.ContextMenu; - var ResetFloatingBarPositionTrayIconMenuItem = (MenuItem)s.Items[s.Items.Count - 4]; - var FoldFloatingBarTrayIconMenuItem = (MenuItem)s.Items[s.Items.Count - 5]; - var ForceFullScreenTrayIconMenuItem = (MenuItem)s.Items[s.Items.Count - 6]; - ResetFloatingBarPositionTrayIconMenuItem.IsEnabled = false; - FoldFloatingBarTrayIconMenuItem.IsEnabled = false; - ForceFullScreenTrayIconMenuItem.IsEnabled = false; - ResetFloatingBarPositionTrayIconMenuItem.Opacity = 0.5; - FoldFloatingBarTrayIconMenuItem.Opacity = 0.5; - ForceFullScreenTrayIconMenuItem.Opacity = 0.5; + if (mainWin.IsLoaded) { + mainWin.Hide(); + var s = ((TaskbarIcon)Application.Current.Resources["TaskbarTrayIcon"]).ContextMenu; + var ResetFloatingBarPositionTrayIconMenuItem = (MenuItem)s.Items[s.Items.Count - 4]; + var FoldFloatingBarTrayIconMenuItem = (MenuItem)s.Items[s.Items.Count - 5]; + var ForceFullScreenTrayIconMenuItem = (MenuItem)s.Items[s.Items.Count - 6]; + ResetFloatingBarPositionTrayIconMenuItem.IsEnabled = false; + FoldFloatingBarTrayIconMenuItem.IsEnabled = false; + ForceFullScreenTrayIconMenuItem.IsEnabled = false; + ResetFloatingBarPositionTrayIconMenuItem.Opacity = 0.5; + FoldFloatingBarTrayIconMenuItem.Opacity = 0.5; + ForceFullScreenTrayIconMenuItem.Opacity = 0.5; + } else { + mi.IsChecked = false; + } + } - private void HideICCMainWindowTrayIconMenuItem_UnChecked(object sender, RoutedEventArgs e) - { + private void HideICCMainWindowTrayIconMenuItem_UnChecked(object sender, RoutedEventArgs e) { + var mi = (MenuItem)sender; var mainWin = (MainWindow)Application.Current.MainWindow; - mainWin.Show(); - var s = (ContextMenu)_taskbar.ContextMenu; - var ResetFloatingBarPositionTrayIconMenuItem = (MenuItem)s.Items[s.Items.Count - 4]; - var FoldFloatingBarTrayIconMenuItem = (MenuItem)s.Items[s.Items.Count - 5]; - var ForceFullScreenTrayIconMenuItem = (MenuItem)s.Items[s.Items.Count - 6]; - ResetFloatingBarPositionTrayIconMenuItem.IsEnabled = true; - FoldFloatingBarTrayIconMenuItem.IsEnabled = true; - ForceFullScreenTrayIconMenuItem.IsEnabled = true; - ResetFloatingBarPositionTrayIconMenuItem.Opacity = 1; - FoldFloatingBarTrayIconMenuItem.Opacity = 1; - ForceFullScreenTrayIconMenuItem.Opacity = 1; + if (mainWin.IsLoaded) { + mainWin.Show(); + var s = ((TaskbarIcon)Application.Current.Resources["TaskbarTrayIcon"]).ContextMenu; + var ResetFloatingBarPositionTrayIconMenuItem = (MenuItem)s.Items[s.Items.Count - 4]; + var FoldFloatingBarTrayIconMenuItem = (MenuItem)s.Items[s.Items.Count - 5]; + var ForceFullScreenTrayIconMenuItem = (MenuItem)s.Items[s.Items.Count - 6]; + ResetFloatingBarPositionTrayIconMenuItem.IsEnabled = true; + FoldFloatingBarTrayIconMenuItem.IsEnabled = true; + ForceFullScreenTrayIconMenuItem.IsEnabled = true; + ResetFloatingBarPositionTrayIconMenuItem.Opacity = 1; + FoldFloatingBarTrayIconMenuItem.Opacity = 1; + ForceFullScreenTrayIconMenuItem.Opacity = 1; + } else { + mi.IsChecked = false; + } } }