OSDN Git Service

Hide itself from the task list in the system tray
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Fri, 11 May 2018 08:13:03 +0000 (17:13 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 13 May 2018 13:23:39 +0000 (22:23 +0900)
BurageSnap/MainWindow.xaml
BurageSnap/MainWindowViewModel.cs

index a191280..c348894 100644 (file)
@@ -11,7 +11,7 @@
         mc:Ignorable="d"
         Style="{StaticResource WindowStyle}"
         Title="BurageSnap" Height="114" Width="169" ResizeMode="CanMinimize" Icon="app.ico"
-        ShowInTaskbar="{Binding ShowInTaskbar}" WindowState="{Binding WindowState}">
+        ShowInTaskbar="{Binding ShowInTaskbar}" WindowState="{Binding WindowState}" WindowStyle="{Binding WindowStyle, Mode=TwoWay}">
     <controls:MetroWindow.DataContext>
         <local:MainWindowViewModel/>
     </controls:MetroWindow.DataContext>
index 5885bcc..2aaa2ea 100644 (file)
@@ -62,22 +62,32 @@ namespace BurageSnap
 
         public bool ShowInTaskbar
         {
-            get { return _showInTaskbar; }
-            set { SetProperty(ref _showInTaskbar, value); }
+            get => _showInTaskbar;
+            set => SetProperty(ref _showInTaskbar, value);
+        }
+
+        private WindowStyle _windowStyle;
+
+        public WindowStyle WindowStyle
+        {
+            get => _windowStyle;
+            set => SetProperty(ref _windowStyle, value);
         }
 
         private WindowState _windowState = WindowState.Normal;
 
         public WindowState WindowState
         {
-            get { return _windowState; }
+            get => _windowState;
             set
             {
                 if (_windowState == value)
                     return;
                 Main.Config.WindowState = value;
                 SetProperty(ref _windowState, value);
-                ShowInTaskbar = !(WindowState == WindowState.Minimized && Main.Config.ResideInSystemTray);
+                var hide = WindowState == WindowState.Minimized && Main.Config.ResideInSystemTray;
+                ShowInTaskbar = !hide;
+                WindowStyle = hide ? WindowStyle.ToolWindow : WindowStyle.SingleBorderWindow;
             }
         }