diff --git a/Resource/Images/UIResource/Next.png b/Resource/Images/UIResource/Next.png
new file mode 100644
index 0000000..d88bb84
Binary files /dev/null and b/Resource/Images/UIResource/Next.png differ
diff --git a/Resource/Images/UIResource/NextHover.png b/Resource/Images/UIResource/NextHover.png
new file mode 100644
index 0000000..495875b
Binary files /dev/null and b/Resource/Images/UIResource/NextHover.png differ
diff --git a/SparkClient.csproj b/SparkClient.csproj
index ee99a1c..8f16ae0 100644
--- a/SparkClient.csproj
+++ b/SparkClient.csproj
@@ -23,6 +23,7 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
+
@@ -218,6 +219,10 @@
+
+
+
+
diff --git a/SparkClient.sln.DotSettings.user b/SparkClient.sln.DotSettings.user
index 04b6804..0243034 100644
--- a/SparkClient.sln.DotSettings.user
+++ b/SparkClient.sln.DotSettings.user
@@ -14,6 +14,7 @@
ForceIncluded
ForceIncluded
ForceIncluded
+ ForceIncluded
ForceIncluded
ForceIncluded
ForceIncluded
@@ -43,6 +44,7 @@
ForceIncluded
ForceIncluded
ForceIncluded
+ ForceIncluded
ForceIncluded
ForceIncluded
ForceIncluded
diff --git a/ViewModel/BaseWindow/BaseControlVM.cs b/ViewModel/BaseWindow/BaseControlVM.cs
index a7ce3a3..018baad 100644
--- a/ViewModel/BaseWindow/BaseControlVM.cs
+++ b/ViewModel/BaseWindow/BaseControlVM.cs
@@ -1,5 +1,6 @@
using System.Windows;
using System.Windows.Input;
+using GlobalHotKey;
using HandyControl.Controls;
using SparkClient.Model.Helper;
using SparkClient.ViewModel.Grading;
@@ -22,6 +23,15 @@ public class BaseControlVM : BaseViewModel
public object Content { get; }
public ICommand CloseCommand { get; }
+ public ICommand EscCloseCommand { get; }
+
+ public ICommand NextCommand { get; }
+
+
+ private HotKeyManager _hotKeyManager;
+
+
+
///
/// 构造:创建一个带有子页面的模板,并指定子窗口标题,并指定右侧按钮事件内容
///
@@ -33,6 +43,9 @@ public class BaseControlVM : BaseViewModel
Content = vm;
WindowTitle = windowTitle;
CloseCommand = new RelayCommand(CloseVM);
+ EscCloseCommand = new RelayCommand(OnClose);
+ NextCommand = new RelayCommand(NextDiamond);
+ _hotKeyManager = new HotKeyManager();
}
///
@@ -44,7 +57,34 @@ public class BaseControlVM : BaseViewModel
{
Content = vm;
WindowTitle = windowTitle;
+ ShowFunctionButton = Visibility.Hidden;
CloseCommand = new RelayCommand(CloseVM);
+ NextCommand = new RelayCommand(NextDiamond);
+
+ if (vm.GetType().Equals(typeof(GradingResultVM)))
+ {
+ Application.Current.Dispatcher.Invoke(() =>
+ {
+ try
+ {
+ _hotKeyManager = new HotKeyManager();
+ var hotKey = new HotKey(Key.R, ModifierKeys.Control | ModifierKeys.Alt);
+ _hotKeyManager.Register(hotKey);
+ _hotKeyManager.KeyPressed += OnHotKeyPressed;
+ }
+ catch (Exception ex)
+ {
+ Logger.Info("设计缺陷:快捷键重复注册");
+ }
+ });
+ }
+ else
+ {
+ // _hotKeyManager = new HotKeyManager();
+ // var hotKey = new HotKey(Key.R, ModifierKeys.Control | ModifierKeys.Alt);
+ // _hotKeyManager.Unregister(hotKey);
+ }
+
}
///
/// 构造:创建一个带有子页面的模板
@@ -55,7 +95,30 @@ public class BaseControlVM : BaseViewModel
Content = vm;
CloseCommand = new RelayCommand(CloseVM);
}
+ private void OnClose(object parameter)
+ {
+ if (parameter is KeyEventArgs keyEventArgs && keyEventArgs.Key == Key.Escape)
+ {
+ CloseVM(parameter);
+ }
+ }
+
+ private void OnHotKeyPressed(object sender, KeyPressedEventArgs e)
+ {
+ if(WindowTitle.StartsWith(MultilingualHelper.getString("DetectionResult")))
+ NextDiamond("");
+ }
+ public void NextDiamond(object parameter)
+ {
+ CloseVM(parameter);
+ DiamondSelectVM selectVm = new DiamondSelectVM();
+ ViewControl = selectVm;
+ WindowTitle = MultilingualHelper.getString("DiamondSelect");
+ selectVm.StartGrading("ROUND P8 P8");
+
+ }
+
///
/// 关闭并退回至上一个页面
///
diff --git a/ViewModel/BaseWindow/HomeWindowVM.cs b/ViewModel/BaseWindow/HomeWindowVM.cs
index 5e540de..607d4ef 100644
--- a/ViewModel/BaseWindow/HomeWindowVM.cs
+++ b/ViewModel/BaseWindow/HomeWindowVM.cs
@@ -38,6 +38,7 @@ public class HomeWindowVM : BaseViewModel
if (isPermissions())
{
ConfigMenuPageVM vm = new ConfigMenuPageVM();
+
WindowManager.mainViewModel.Content = vm;
WindowManager.openContent.Add(vm);
}
@@ -45,6 +46,7 @@ public class HomeWindowVM : BaseViewModel
{
BaseControlVM vm = new BaseControlVM(new SettingBaseVM(), MultilingualHelper.getString("SystemSetting"));
WindowManager.mainViewModel.Content = vm;
+
WindowManager.openContent.Add(vm);
}
}
@@ -89,7 +91,7 @@ public class HomeWindowVM : BaseViewModel
//if (result != MessageBoxResult.None)
//{
BaseControlVM vm = new BaseControlVM(new DiamondSelectVM(), MultilingualHelper.getString("DiamondSelect"));
- vm.ShowFunctionButton = System.Windows.Visibility.Hidden;
+
WindowManager.mainViewModel.Content = vm;
WindowManager.openContent.Add(vm);
//}
diff --git a/ViewModel/Configuration/ConfigMenuPageVM.cs b/ViewModel/Configuration/ConfigMenuPageVM.cs
index be3bc70..14fdcb5 100644
--- a/ViewModel/Configuration/ConfigMenuPageVM.cs
+++ b/ViewModel/Configuration/ConfigMenuPageVM.cs
@@ -39,7 +39,6 @@ public class ConfigMenuPageVM : BaseViewModel
public void LevelConfig(object parameter)
{
BaseControlVM vm = new BaseControlVM(new LevelConfigVM(null), MultilingualHelper.getString("LevelConfig"));
- vm.ShowFunctionButton = System.Windows.Visibility.Hidden;
WindowManager.mainViewModel.Content = vm;
WindowManager.openContent.Add(vm);
}
@@ -51,7 +50,6 @@ public class ConfigMenuPageVM : BaseViewModel
public void AlgorithmConfig(object parameter)
{
BaseControlVM vm = new BaseControlVM(new AlgorithmConfigVM(), MultilingualHelper.getString("AlgorithmConfig"));
- vm.ShowFunctionButton = System.Windows.Visibility.Hidden;
WindowManager.mainViewModel.Content = vm;
WindowManager.openContent.Add(vm);
}
@@ -63,7 +61,7 @@ public class ConfigMenuPageVM : BaseViewModel
public void CutConfig(object parameter)
{
BaseControlVM vm = new BaseControlVM(new CutConfigVM(), MultilingualHelper.getString("CutConfig"));
- vm.ShowFunctionButton = System.Windows.Visibility.Hidden;
+
WindowManager.mainViewModel.Content = vm;
WindowManager.openContent.Add(vm);
}
diff --git a/ViewModel/Dialog/StartDialogVM.cs b/ViewModel/Dialog/StartDialogVM.cs
index aff6d77..95fa6dc 100644
--- a/ViewModel/Dialog/StartDialogVM.cs
+++ b/ViewModel/Dialog/StartDialogVM.cs
@@ -38,7 +38,7 @@ namespace SparkClient.ViewModel.Dialog
public void Skip(object parameter)
{
BaseControlVM vm = new BaseControlVM(new DiamondSelectVM(), MultilingualHelper.getString("DiamondSelect"));
- vm.ShowFunctionButton = System.Windows.Visibility.Hidden;
+
WindowManager.mainViewModel.Content = vm;
WindowManager.openContent.Add(vm);
}
@@ -47,7 +47,7 @@ namespace SparkClient.ViewModel.Dialog
{
if (InputText != null && InputText.Trim().Length > 0) {
BaseControlVM vm = new BaseControlVM(new DiamondSelectVM(), MultilingualHelper.getString("DiamondSelect"));
- vm.ShowFunctionButton = System.Windows.Visibility.Hidden;
+
WindowManager.mainViewModel.Content = vm;
WindowManager.openContent.Add(vm);
}
diff --git a/ViewModel/Grading/DiamondSelectVM.cs b/ViewModel/Grading/DiamondSelectVM.cs
index 89f750d..35d28c1 100644
--- a/ViewModel/Grading/DiamondSelectVM.cs
+++ b/ViewModel/Grading/DiamondSelectVM.cs
@@ -131,7 +131,7 @@ public class DiamondSelectVM : BaseViewModel
public async void StartGrading(object param)
{
MessageBox messageBox = new MessageBox();
- MessageBoxResult result = messageBox.ShowInput(MultilingualHelper.getString("UpdateDiamondCode"), out string inputStr,
+ MessageBoxResult result = messageBox.ShowInput($"{MultilingualHelper.getString("UpdateDiamondCode")}", out string inputStr,
MultilingualHelper.getString("ok"),
MultilingualHelper.getString("Skip")
);
@@ -538,7 +538,7 @@ public class DiamondSelectVM : BaseViewModel
//WindowManager.mainViewModel.Content = WindowManager.PreviousVM();
BaseControlVM vm = new BaseControlVM(new GradingResultVM(param), MultilingualHelper.getString("DetectionResult"));
vm.WindowTitle = string.IsNullOrWhiteSpace(param.DiamondCode) ? vm.WindowTitle : $"{vm.WindowTitle} - {param.DiamondCode}";
- vm.ShowFunctionButton = System.Windows.Visibility.Hidden;
+ vm.ShowFunctionButton = System.Windows.Visibility.Visible;
WindowManager.mainViewModel.Content = vm;
WindowManager.openContent.Add(vm);
}
diff --git a/Views/BaseWindow/BaseControl.xaml b/Views/BaseWindow/BaseControl.xaml
index 642d869..5402642 100644
--- a/Views/BaseWindow/BaseControl.xaml
+++ b/Views/BaseWindow/BaseControl.xaml
@@ -27,6 +27,14 @@
+