11using Microsoft . Extensions . Logging ;
22using OnnxStack . Core ;
33using OnnxStack . UI . Commands ;
4+ using System ;
45using System . Collections . Generic ;
56using System . ComponentModel ;
67using System . Runtime . CompilerServices ;
@@ -26,11 +27,19 @@ public partial class TextInputDialog : Window, INotifyPropertyChanged
2627 public TextInputDialog ( ILogger < TextInputDialog > logger )
2728 {
2829 _logger = logger ;
30+ WindowCloseCommand = new AsyncRelayCommand ( WindowClose ) ;
31+ WindowRestoreCommand = new AsyncRelayCommand ( WindowRestore ) ;
32+ WindowMinimizeCommand = new AsyncRelayCommand ( WindowMinimize ) ;
33+ WindowMaximizeCommand = new AsyncRelayCommand ( WindowMaximize ) ;
2934 SaveCommand = new AsyncRelayCommand ( Save , CanExecuteSave ) ;
3035 CancelCommand = new AsyncRelayCommand ( Cancel , CanExecuteCancel ) ;
3136 InitializeComponent ( ) ;
37+ ErrorMessage = string . Empty ;
3238 }
33-
39+ public AsyncRelayCommand WindowMinimizeCommand { get ; }
40+ public AsyncRelayCommand WindowRestoreCommand { get ; }
41+ public AsyncRelayCommand WindowMaximizeCommand { get ; }
42+ public AsyncRelayCommand WindowCloseCommand { get ; }
3443 public AsyncRelayCommand SaveCommand { get ; }
3544 public AsyncRelayCommand CancelCommand { get ; }
3645
@@ -113,6 +122,41 @@ private bool CanExecuteCancel()
113122 return true ;
114123 }
115124
125+ #region BaseWindow
126+
127+ private Task WindowClose ( )
128+ {
129+ Close ( ) ;
130+ return Task . CompletedTask ;
131+ }
132+
133+ private Task WindowRestore ( )
134+ {
135+ if ( WindowState == WindowState . Maximized )
136+ WindowState = WindowState . Normal ;
137+ else
138+ WindowState = WindowState . Maximized ;
139+ return Task . CompletedTask ;
140+ }
141+
142+ private Task WindowMinimize ( )
143+ {
144+ WindowState = WindowState . Minimized ;
145+ return Task . CompletedTask ;
146+ }
147+
148+ private Task WindowMaximize ( )
149+ {
150+ WindowState = WindowState . Maximized ;
151+ return Task . CompletedTask ;
152+ }
153+
154+ private void OnContentRendered ( object sender , EventArgs e )
155+ {
156+ InvalidateVisual ( ) ;
157+ }
158+ #endregion
159+
116160 #region INotifyPropertyChanged
117161 public event PropertyChangedEventHandler PropertyChanged ;
118162 public void NotifyPropertyChanged ( [ CallerMemberName ] string property = "" )
0 commit comments