fix: 部署意见修改(8/8)(0/3)

master
Tongg 5 months ago
parent 3debfe0fc4
commit 1c61cf83e1
  1. BIN
      Resource/Images/UIResource/Next.png
  2. BIN
      Resource/Images/UIResource/NextHover.png
  3. 5
      SparkClient.csproj
  4. 2
      SparkClient.sln.DotSettings.user
  5. 63
      ViewModel/BaseWindow/BaseControlVM.cs
  6. 4
      ViewModel/BaseWindow/HomeWindowVM.cs
  7. 4
      ViewModel/Configuration/ConfigMenuPageVM.cs
  8. 4
      ViewModel/Dialog/StartDialogVM.cs
  9. 4
      ViewModel/Grading/DiamondSelectVM.cs
  10. 25
      Views/BaseWindow/BaseControl.xaml
  11. 15
      Views/BaseWindow/BaseControl.xaml.cs
  12. 4
      Views/Grading/GradingResult.xaml
  13. 2
      Views/Grading/GradingResult.xaml.cs

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

@ -23,6 +23,7 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="GlobalHotKey" Version="1.1.0" />
<PackageReference Include="HandyControl" Version="3.5.1" />
<PackageReference Include="HandyControl.Lang.en" Version="3.5.1" />
<PackageReference Include="HandyControls.Lang.zh-CN" Version="3.5.3" />
@ -218,6 +219,10 @@
<Resource Include="Resource\Images\UIResource\03-0.jpg" />
<None Remove="Resource\Images\UserControl\03-8-3.png" />
<Resource Include="Resource\Images\UserControl\03-8-3.png" />
<None Remove="Resource\Images\UIResource\Next.png" />
<Resource Include="Resource\Images\UIResource\Next.png" />
<None Remove="Resource\Images\UIResource\NextHover.png" />
<Resource Include="Resource\Images\UIResource\NextHover.png" />
</ItemGroup>
<ItemGroup>

@ -14,6 +14,7 @@
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AClrObjectRuntime_002Ecs_002Fl_003AC_0021_003FUsers_003Ftongg_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fab21534b1ec041498b3c23a65e9ed82b15a918_003F19_003F3f4e517b_003FClrObjectRuntime_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AColor_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fc45597e5b7ab42d99b3882b94d97e64034a00_003Ffb_003F5b076364_003FColor_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AConfigurationManager_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F4855f825db5f4f469faf36f45940559e106918_003Fff_003Fb357c8b2_003FConfigurationManager_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AConfigurationManager_002Ecs_002Fl_003AC_0021_003FUsers_003Ftongg_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F4855f825db5f4f469faf36f45940559e106918_003Fff_003Fb357c8b2_003FConfigurationManager_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AContentControl_002Ecs_002Fl_003AC_0021_003FUsers_003Ftongg_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FSourcesCache_003F27bb3fae2c21cbe9a2565477feaa7a5b3a19cd779b4a91a98edfff9cd468972_003FContentControl_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACulturePreservingExecutionContext_002Ecs_002Fl_003AC_0021_003FUsers_003Ftongg_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fbc9a074a2f204631bd77a8b9ba934b50226928_003Fd3_003Fb047e8cb_003FCulturePreservingExecutionContext_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ADependencyObject_002Ecs_002Fl_003AC_0021_003FUsers_003Ftongg_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F60b63c019ead4a238340b47a1c0010d5226910_003Fca_003F09e9dbc0_003FDependencyObject_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
@ -43,6 +44,7 @@
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AGraphics_002Ecs_002Fl_003AC_0021_003FUsers_003Ftongg_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fb6416db4533e4255bc43c1cfd556a910175930_003Fa9_003Ff7e2a9a8_003FGraphics_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AGuid_002Ecs_002Fl_003AC_0021_003FUsers_003Ftongg_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F211e6f3b24fa438a92f1815153647ce2c8f908_003Faa_003Fa49e75b9_003FGuid_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AHorizontalAlignment_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F6412d4331611499aab4eb63809a2a83bf60910_003F45_003F96f9f663_003FHorizontalAlignment_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AHotKeyManager_002Ecs_002Fl_003AC_0021_003FUsers_003Ftongg_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fd5c1718d5e8747ee92425852975506512400_003Fed_003Fdddc73e1_003FHotKeyManager_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AILog_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FSourcesCache_003Fcd69d110241e68c102d90de60fe9abbdef79631973c35119af9fe6139bcdbc_003FILog_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AILog_002Ecs_002Fl_003AC_0021_003FUsers_003Ftongg_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F6f4e00a876324444bc5ae4e52ed22ade46200_003F49_003Fe673ccfc_003FILog_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AInputManager_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FSourcesCache_003F59d3cbd3f2f27be170d8c07c2c3947fe0efe92848ebab828a63cfbe1ef3a1d_003FInputManager_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>

@ -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;
/// <summary>
/// 构造:创建一个带有子页面的模板,并指定子窗口标题,并指定右侧按钮事件内容
/// </summary>
@ -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();
}
/// <summary>
@ -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);
}
}
/// <summary>
/// 构造:创建一个带有子页面的模板
@ -55,6 +95,29 @@ 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");
}
/// <summary>
/// 关闭并退回至上一个页面

@ -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);
//}

@ -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);
}

@ -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);
}

@ -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);
}

@ -27,6 +27,14 @@
</DataTrigger>
</Style.Triggers>
</Style>
<Style x:Key="InNextHoverImageStyle" TargetType="Image">
<Setter Property="Source" Value="pack://application:,,,/Resource/Images/UIResource/Next.png"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType=Border}}" Value="True">
<Setter Property="Source" Value="pack://application:,,,/Resource/Images/UIResource/NextHover.png"/>
</DataTrigger>
</Style.Triggers>
</Style>
<Style x:Key="MiniszieHoverImageStyle" TargetType="Image">
<!-- 默认图片 -->
<Setter Property="Source" Value="pack://application:,,,/Resource/Images/UIResource/02-2.png"/>
@ -111,7 +119,8 @@
</Grid>
</Grid>
<Border Grid.Row="1" Margin="10" CornerRadius="15" Background="#c5cbe3">
<Border KeyDown="UIElement_OnKeyDown" Grid.Row="1" Margin="10" CornerRadius="15" Background="#c5cbe3" Focusable="True">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
@ -123,6 +132,7 @@
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<!-- 标题内容 -->
<TextBlock Grid.Column="0" Text="{Binding WindowTitle}"
@ -134,8 +144,17 @@
Margin=" 0 0 10 0"
HorizontalAlignment="Right" VerticalAlignment="Center"
Background="Transparent"
Padding="0"
>
<Button Background="Transparent" BorderBrush="Transparent" Padding="0" Visibility="{Binding ShowFunctionButton}" Command="{Binding NextCommand}">
<Image Style="{StaticResource InNextHoverImageStyle}" x:Name="ImageNext" Width="25" Height="45"/>
</Button>
</Border>
<Border Grid.Column="3"
Width="40" Height="40"
Margin=" 0 0 10 0"
HorizontalAlignment="Right" VerticalAlignment="Center"
Background="Transparent"
Padding="0"
>
<Button Background="Transparent" BorderBrush="Transparent" Padding="0" Command="{Binding CloseCommand}">

@ -17,6 +17,10 @@ public partial class BaseControl
// 动态设置圆角裁剪
this.Loaded += (s, e) => ApplyCornerRadiusClip();
this.SizeChanged += (s, e) => ApplyCornerRadiusClip(); // 保证在大小改变时也裁剪
FocusManager.SetFocusedElement(this, this);
Keyboard.Focus(this);
}
private void Border_Minimize_MouseEnter(object sender, MouseEventArgs e)
@ -87,4 +91,15 @@ public partial class BaseControl
{
parentWindow = Window.GetWindow(this);
}
private void UIElement_OnKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Escape)
{
if (DataContext is BaseControlVM vm)
{
vm.CloseVM("");
}
}
}
}

@ -86,7 +86,7 @@
</Grid.ColumnDefinitions>
<!-- 保存按钮 -->
<Button Grid.Column="0" Padding="0" Margin="10 0 0 0" Height="50" BorderThickness="0" IsEnabled="{Binding IsEnabled}"
Background="Transparent" FocusVisualStyle="{x:Null}" Command="{Binding SaveFileCommand}">
Background="Transparent" FocusVisualStyle="{x:Null}" Command="{Binding SaveFileCommand}" ForceCursor="True">
<Border
HorizontalAlignment="Center"
VerticalAlignment="Center"
@ -95,6 +95,7 @@
Width="100"
BorderThickness="0"
CornerRadius="20">
<Border.Background>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#38C8BF" Offset="0"/>
@ -160,6 +161,7 @@
<TextBlock FontSize="18" TextAlignment="Center" Foreground="#ffffff" Text="{StaticResource Print}" />
</Border>
</Button>
<!-- 卡片 -->
<!-- 标准 -->
<Border Grid.Column="5" Background="#EBEEF5" Width="170" Height="80" CornerRadius="10" Margin="0 0 10 0">

@ -1,6 +1,7 @@
using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Forms.VisualStyles;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
@ -16,6 +17,7 @@ public partial class GradingResult
// List<Viewport3DTriangleEntity> triangles = new List<Viewport3DTriangleEntity>();
List<GeometryModel3D> mouseAddModels = new List<GeometryModel3D>();
// 用于记录当前所有已存在的Popup
private List<Popup> _allPopups = new List<Popup>();
public GradingResult()

Loading…
Cancel
Save