diff --git a/Language/en_US.xaml b/Language/en_US.xaml index 18937db..007d15a 100644 --- a/Language/en_US.xaml +++ b/Language/en_US.xaml @@ -65,6 +65,7 @@ Fancy Shape Detecting, please wait... + Minimize Generating file, please wait... Average diff --git a/Language/zh_CN.xaml b/Language/zh_CN.xaml index f42bc5d..ee8ee18 100644 --- a/Language/zh_CN.xaml +++ b/Language/zh_CN.xaml @@ -65,6 +65,7 @@ 异形钻 正在检测,请等待... + 最小化 正在生成文件,请稍等... 平均 diff --git a/MainWindow.xaml.cs b/MainWindow.xaml.cs index 9aa47f5..2a56d19 100644 --- a/MainWindow.xaml.cs +++ b/MainWindow.xaml.cs @@ -62,6 +62,7 @@ public partial class MainWindow //初始化 this.WindowState = WindowState.Maximized; + WindowManager.MainWindow = this; } #region 重写窗体操作按钮 diff --git a/SparkClient.sln.DotSettings.user b/SparkClient.sln.DotSettings.user index 0243034..e25331f 100644 --- a/SparkClient.sln.DotSettings.user +++ b/SparkClient.sln.DotSettings.user @@ -66,6 +66,7 @@ ForceIncluded ForceIncluded ForceIncluded + ForceIncluded ForceIncluded ForceIncluded ForceIncluded @@ -84,6 +85,7 @@ ForceIncluded ForceIncluded ForceIncluded + ForceIncluded ForceIncluded ForceIncluded ForceIncluded diff --git a/ViewModel/BaseWindow/BaseControlVM.cs b/ViewModel/BaseWindow/BaseControlVM.cs index 17168e1..5c58e27 100644 --- a/ViewModel/BaseWindow/BaseControlVM.cs +++ b/ViewModel/BaseWindow/BaseControlVM.cs @@ -26,9 +26,7 @@ public class BaseControlVM : BaseViewModel public ICommand EscCloseCommand { get; } public ICommand NextCommand { get; } - - private HotKeyManager _hotKeyManager; @@ -45,7 +43,6 @@ public class BaseControlVM : BaseViewModel CloseCommand = new RelayCommand(CloseVM); EscCloseCommand = new RelayCommand(OnClose); NextCommand = new RelayCommand(NextDiamond); - _hotKeyManager = new HotKeyManager(); } /// @@ -67,10 +64,15 @@ public class BaseControlVM : BaseViewModel { try { - _hotKeyManager = new HotKeyManager(); + HotKeyManager _hotKeyManager = new HotKeyManager(); var hotKey = new HotKey(Key.Q, ModifierKeys.Control | ModifierKeys.Alt); _hotKeyManager.Register(hotKey); _hotKeyManager.KeyPressed += OnHotKeyPressed; + + HotKeyManager _hotKeyManagerClose = new HotKeyManager(); + var hotKeyClose = new HotKey(Key.E, ModifierKeys.Control | ModifierKeys.Alt); + _hotKeyManagerClose.Register(hotKeyClose); + _hotKeyManagerClose.KeyPressed += OnHotKeyPressedClose; } catch (Exception ex) { @@ -105,8 +107,24 @@ public class BaseControlVM : BaseViewModel private void OnHotKeyPressed(object sender, KeyPressedEventArgs e) { - if(WindowTitle.StartsWith(MultilingualHelper.getString("DetectionResult"))) - NextDiamond(""); + // if(Content.GetType().Equals(typeof(GradingResultVM))) + // + if (WindowManager.mainViewModel.Content is BaseControlVM baseVM) + { + if(baseVM.Content.GetType().Equals(typeof(GradingResultVM))) + NextDiamond(""); + } + } + private void OnHotKeyPressedClose(object sender, KeyPressedEventArgs e) + { + // if(WindowTitle.StartsWith(MultilingualHelper.getString("DetectionResult"))) + if (WindowManager.mainViewModel.Content is BaseControlVM baseVM) + { + if(baseVM.Content.GetType().Equals(typeof(GradingResultVM))) + CloseVM(""); + } + + } public void NextDiamond(object parameter) diff --git a/ViewModel/BaseWindow/WindowManager.cs b/ViewModel/BaseWindow/WindowManager.cs index 6668a13..26271ac 100644 --- a/ViewModel/BaseWindow/WindowManager.cs +++ b/ViewModel/BaseWindow/WindowManager.cs @@ -3,6 +3,8 @@ namespace SparkClient.ViewModel.BaseWindow; public class WindowManager { public static MainViewModel mainViewModel; + + public static MainWindow MainWindow; public static List openContent = new List(); diff --git a/ViewModel/Grading/DiamondSelectVM.cs b/ViewModel/Grading/DiamondSelectVM.cs index 075df85..b57cc37 100644 --- a/ViewModel/Grading/DiamondSelectVM.cs +++ b/ViewModel/Grading/DiamondSelectVM.cs @@ -150,7 +150,7 @@ public class DiamondSelectVM : BaseViewModel #if DEBUG DoStartGrading(param); #else - LoadingDialog loading = new LoadingDialog(); + LoadingDialog loading = new LoadingDialog(DiamondCode); try { if (param != null) @@ -354,7 +354,7 @@ public class DiamondSelectVM : BaseViewModel [Log] public async void DoStartGrading(object param) { - LoadingDialog loading = new LoadingDialog(); + LoadingDialog loading = new LoadingDialog(DiamondCode); try { if (param != null) { diff --git a/ViewModel/Grading/GradingResultVM.cs b/ViewModel/Grading/GradingResultVM.cs index 3da5bf0..f3f9c03 100644 --- a/ViewModel/Grading/GradingResultVM.cs +++ b/ViewModel/Grading/GradingResultVM.cs @@ -832,27 +832,20 @@ public class GradingResultVM : BaseViewModel [Log] private void AutoSave() { - if (string.IsNullOrEmpty(DiamondCode)) + if (!Directory.Exists(getFilePath())) { - return; + //new MessageBox().Show(MultilingualHelper.getString("SavePathIsnotExists")); + //return; + throw new DirectoryNotFoundException(getFilePath()); } - else + string fullPath = Path.Combine(getFilePath(), string.IsNullOrEmpty(DiamondCode)?"temp":DiamondCode); + if (FileSaveEnabled("Txt")) { - if (!Directory.Exists(getFilePath())) - { - //new MessageBox().Show(MultilingualHelper.getString("SavePathIsnotExists")); - //return; - throw new DirectoryNotFoundException(getFilePath()); - } - string fullPath = Path.Combine(getFilePath(), this.DiamondCode); - if (FileSaveEnabled("Txt")) - { - TxtFile(fullPath); - } - if (FileSaveEnabled("Excel")) - { - ExcelFile(fullPath); - } + TxtFile(fullPath); + } + if (FileSaveEnabled("Excel")) + { + ExcelFile(fullPath); } } @@ -1078,6 +1071,7 @@ public class GradingResultVM : BaseViewModel try { string fileName = filePath + ".txt"; + using (var file = File.Create(fileName)) { Measurements info = algorithmResult.measurements; diff --git a/Views/Dialog/LoadingDialog.xaml b/Views/Dialog/LoadingDialog.xaml index a38c642..645ab31 100644 --- a/Views/Dialog/LoadingDialog.xaml +++ b/Views/Dialog/LoadingDialog.xaml @@ -7,18 +7,25 @@ mc:Ignorable="d" Title="LoadingDialog" Height="450" Width="800" WindowStyle="None" AllowsTransparency="True" Background="Transparent" - WindowState="Maximized"> + WindowState="Maximized" StateChanged="LoadingDialog_OnStateChanged" SizeChanged="LoadingDialog_OnSizeChanged"> - - + + + + - + FontSize="36" VerticalAlignment="Center" Background="Transparent" HorizontalAlignment="Center" Foreground="#FFFFFF"/> + + + diff --git a/Views/Dialog/LoadingDialog.xaml.cs b/Views/Dialog/LoadingDialog.xaml.cs index e63e01a..bae1ecb 100644 --- a/Views/Dialog/LoadingDialog.xaml.cs +++ b/Views/Dialog/LoadingDialog.xaml.cs @@ -12,6 +12,7 @@ using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; +using SparkClient.ViewModel.BaseWindow; namespace SparkClient.Views.Dialog { @@ -20,11 +21,24 @@ namespace SparkClient.Views.Dialog /// public partial class LoadingDialog : Window { - public LoadingDialog() + private Window parentWindow; + + public LoadingDialog(string DiaCode) { InitializeComponent(); this.MinWidth = 1000; this.MinHeight = 1000; + this.WindowState = WindowState.Maximized; + if (string.IsNullOrWhiteSpace(DiaCode)) + { + DCodeTextBlock.Visibility = Visibility.Hidden; + DCodeTextBlock.Text = ""; + } + else + { + DCodeTextBlock.Text = DiaCode; + } + parentWindow = WindowManager.MainWindow; } @@ -32,5 +46,21 @@ namespace SparkClient.Views.Dialog { ProgressBar.Value = i; } + + private void UIElement_OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e) + { + this.WindowState = WindowState.Minimized; + + } + + private void LoadingDialog_OnStateChanged(object? sender, EventArgs e) + { + if(parentWindow != null)parentWindow.WindowState = WindowState; + } + + private void LoadingDialog_OnSizeChanged(object sender, SizeChangedEventArgs e) + { + + } } } diff --git a/Views/Grading/GradingResult.xaml b/Views/Grading/GradingResult.xaml index 521d6d0..387dc0c 100644 --- a/Views/Grading/GradingResult.xaml +++ b/Views/Grading/GradingResult.xaml @@ -20,9 +20,61 @@