新增设置窗体
This commit is contained in:
@@ -65,6 +65,7 @@ namespace XplorePlane.ViewModels
|
|||||||
public DelegateCommand OpenLibraryVersionsCommand { get; }
|
public DelegateCommand OpenLibraryVersionsCommand { get; }
|
||||||
public DelegateCommand OpenUserManualCommand { get; }
|
public DelegateCommand OpenUserManualCommand { get; }
|
||||||
public DelegateCommand OpenCameraSettingsCommand { get; }
|
public DelegateCommand OpenCameraSettingsCommand { get; }
|
||||||
|
public DelegateCommand OpenSettingsCommand { get; }
|
||||||
public DelegateCommand NewCncProgramCommand { get; }
|
public DelegateCommand NewCncProgramCommand { get; }
|
||||||
public DelegateCommand SaveCncProgramCommand { get; }
|
public DelegateCommand SaveCncProgramCommand { get; }
|
||||||
public DelegateCommand LoadCncProgramCommand { get; }
|
public DelegateCommand LoadCncProgramCommand { get; }
|
||||||
@@ -145,6 +146,7 @@ namespace XplorePlane.ViewModels
|
|||||||
private Window _detectorConfigWindow;
|
private Window _detectorConfigWindow;
|
||||||
private Window _plcAddrConfigWindow;
|
private Window _plcAddrConfigWindow;
|
||||||
private Window _realTimeLogViewerWindow;
|
private Window _realTimeLogViewerWindow;
|
||||||
|
private Window _settingsWindow;
|
||||||
private Window _toolboxWindow;
|
private Window _toolboxWindow;
|
||||||
private Window _raySourceConfigWindow;
|
private Window _raySourceConfigWindow;
|
||||||
private object _imagePanelContent;
|
private object _imagePanelContent;
|
||||||
@@ -212,6 +214,7 @@ namespace XplorePlane.ViewModels
|
|||||||
OpenLibraryVersionsCommand = new DelegateCommand(() => ShowWindow(new Views.LibraryVersionsWindow(), "关于"));
|
OpenLibraryVersionsCommand = new DelegateCommand(() => ShowWindow(new Views.LibraryVersionsWindow(), "关于"));
|
||||||
OpenUserManualCommand = new DelegateCommand(ExecuteOpenUserManual);
|
OpenUserManualCommand = new DelegateCommand(ExecuteOpenUserManual);
|
||||||
OpenCameraSettingsCommand = new DelegateCommand(ExecuteOpenCameraSettings);
|
OpenCameraSettingsCommand = new DelegateCommand(ExecuteOpenCameraSettings);
|
||||||
|
OpenSettingsCommand = new DelegateCommand(ExecuteOpenSettings);
|
||||||
NewCncProgramCommand = new DelegateCommand(() => ExecuteCncEditorAction(vm => vm.NewProgramCommand.Execute()));
|
NewCncProgramCommand = new DelegateCommand(() => ExecuteCncEditorAction(vm => vm.NewProgramCommand.Execute()));
|
||||||
SaveCncProgramCommand = new DelegateCommand(() => ExecuteCncEditorAction(vm => vm.SaveProgramCommand.Execute()));
|
SaveCncProgramCommand = new DelegateCommand(() => ExecuteCncEditorAction(vm => vm.SaveProgramCommand.Execute()));
|
||||||
LoadCncProgramCommand = new DelegateCommand(() => ExecuteCncEditorAction(vm => vm.LoadProgramCommand.Execute()));
|
LoadCncProgramCommand = new DelegateCommand(() => ExecuteCncEditorAction(vm => vm.LoadProgramCommand.Execute()));
|
||||||
@@ -377,6 +380,21 @@ namespace XplorePlane.ViewModels
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ExecuteOpenSettings()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
ShowOrActivate(_settingsWindow, w => _settingsWindow = w,
|
||||||
|
() => new Views.SettingsWindow(this), "Settings");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.Error(ex, "Failed to open settings window");
|
||||||
|
MessageBox.Show($"Failed to open settings window: {ex.Message}",
|
||||||
|
"Error", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void ExecuteAxisReset()
|
private void ExecuteAxisReset()
|
||||||
{
|
{
|
||||||
var result = MessageBox.Show("确认执行轴复位操作?", "轴复位",
|
var result = MessageBox.Show("确认执行轴复位操作?", "轴复位",
|
||||||
|
|||||||
@@ -391,6 +391,19 @@
|
|||||||
</telerik:RadRibbonTab>
|
</telerik:RadRibbonTab>
|
||||||
|
|
||||||
<telerik:RadRibbonTab Header="设置">
|
<telerik:RadRibbonTab Header="设置">
|
||||||
|
<telerik:RadRibbonGroup Header="全局设置">
|
||||||
|
<telerik:RadRibbonGroup.Variants>
|
||||||
|
<telerik:GroupVariant Priority="0" Variant="Large" />
|
||||||
|
</telerik:RadRibbonGroup.Variants>
|
||||||
|
<telerik:RadRibbonButton
|
||||||
|
|
||||||
|
Size="Large"
|
||||||
|
SmallImage="/Assets/Icons/setting.png"
|
||||||
|
Command="{Binding OpenSettingsCommand}"
|
||||||
|
Text="全局设置" />
|
||||||
|
|
||||||
|
</telerik:RadRibbonGroup>
|
||||||
|
|
||||||
<telerik:RadRibbonGroup
|
<telerik:RadRibbonGroup
|
||||||
telerik:ScreenTip.Description="Show the Alignment tab of the Format Cells dialog box."
|
telerik:ScreenTip.Description="Show the Alignment tab of the Format Cells dialog box."
|
||||||
telerik:ScreenTip.Title="Format Cells: Alignment"
|
telerik:ScreenTip.Title="Format Cells: Alignment"
|
||||||
|
|||||||
@@ -1,4 +1,8 @@
|
|||||||
using System.Windows;
|
using System.Windows;
|
||||||
|
using System.Windows.Controls;
|
||||||
|
using System.Windows.Data;
|
||||||
|
using System.Linq;
|
||||||
|
using Telerik.Windows.Controls;
|
||||||
using XplorePlane.ViewModels;
|
using XplorePlane.ViewModels;
|
||||||
|
|
||||||
namespace XplorePlane.Views
|
namespace XplorePlane.Views
|
||||||
@@ -12,6 +16,8 @@ namespace XplorePlane.Views
|
|||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
DataContext = viewModel;
|
DataContext = viewModel;
|
||||||
}
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,128 @@
|
|||||||
|
<Window x:Class="XplorePlane.Views.SettingsWindow"
|
||||||
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
Title="系统设置"
|
||||||
|
Width="860"
|
||||||
|
Height="620"
|
||||||
|
MinWidth="760"
|
||||||
|
MinHeight="540"
|
||||||
|
WindowStartupLocation="CenterOwner"
|
||||||
|
ShowInTaskbar="False"
|
||||||
|
Background="#F5F5F5">
|
||||||
|
<Window.Resources>
|
||||||
|
<Style x:Key="SectionTitleStyle" TargetType="TextBlock">
|
||||||
|
<Setter Property="FontSize" Value="16" />
|
||||||
|
<Setter Property="FontWeight" Value="SemiBold" />
|
||||||
|
<Setter Property="Foreground" Value="#1F1F1F" />
|
||||||
|
<Setter Property="Margin" Value="0,0,0,12" />
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style x:Key="CardStyle" TargetType="Border">
|
||||||
|
<Setter Property="Background" Value="White" />
|
||||||
|
<Setter Property="BorderBrush" Value="#D9D9D9" />
|
||||||
|
<Setter Property="BorderThickness" Value="1" />
|
||||||
|
<Setter Property="CornerRadius" Value="6" />
|
||||||
|
<Setter Property="Padding" Value="16" />
|
||||||
|
<Setter Property="Margin" Value="0,0,0,12" />
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style x:Key="ActionButtonStyle" TargetType="Button">
|
||||||
|
<Setter Property="Height" Value="32" />
|
||||||
|
<Setter Property="MinWidth" Value="110" />
|
||||||
|
<Setter Property="Margin" Value="0,0,10,10" />
|
||||||
|
<Setter Property="Padding" Value="12,0" />
|
||||||
|
</Style>
|
||||||
|
</Window.Resources>
|
||||||
|
|
||||||
|
<DockPanel Margin="12">
|
||||||
|
|
||||||
|
<TabControl Background="White">
|
||||||
|
<TabItem Header="通用">
|
||||||
|
<ScrollViewer VerticalScrollBarVisibility="Auto">
|
||||||
|
<StackPanel Margin="16">
|
||||||
|
<TextBlock Style="{StaticResource SectionTitleStyle}" Text="通用设置" />
|
||||||
|
|
||||||
|
<Border Style="{StaticResource CardStyle}">
|
||||||
|
<StackPanel>
|
||||||
|
<TextBlock FontSize="13"
|
||||||
|
FontWeight="SemiBold"
|
||||||
|
Text="界面与使用习惯" />
|
||||||
|
<CheckBox Margin="0,12,0,0"
|
||||||
|
Content="启动时默认显示实时图像" />
|
||||||
|
<CheckBox Margin="0,8,0,0"
|
||||||
|
Content="允许自动恢复上次工作状态" />
|
||||||
|
<CheckBox Margin="0,8,0,0"
|
||||||
|
Content="启用状态栏详细提示" />
|
||||||
|
</StackPanel>
|
||||||
|
</Border>
|
||||||
|
|
||||||
|
<Border Style="{StaticResource CardStyle}">
|
||||||
|
<StackPanel>
|
||||||
|
<TextBlock FontSize="13"
|
||||||
|
FontWeight="SemiBold"
|
||||||
|
Text="调试" />
|
||||||
|
<WrapPanel>
|
||||||
|
<Button Command="{Binding OpenLibraryVersionsCommand}"
|
||||||
|
Content="版本信息"
|
||||||
|
Style="{StaticResource ActionButtonStyle}" />
|
||||||
|
</WrapPanel>
|
||||||
|
</StackPanel>
|
||||||
|
</Border>
|
||||||
|
</StackPanel>
|
||||||
|
</ScrollViewer>
|
||||||
|
</TabItem>
|
||||||
|
|
||||||
|
<TabItem Header="报告">
|
||||||
|
<ScrollViewer VerticalScrollBarVisibility="Auto">
|
||||||
|
<StackPanel Margin="16">
|
||||||
|
<TextBlock Style="{StaticResource SectionTitleStyle}" Text="报告设置" />
|
||||||
|
|
||||||
|
<Border Style="{StaticResource CardStyle}">
|
||||||
|
<StackPanel>
|
||||||
|
<TextBlock FontSize="13"
|
||||||
|
FontWeight="SemiBold"
|
||||||
|
Text="报告模板" />
|
||||||
|
<TextBlock Margin="0,10,0,8"
|
||||||
|
Foreground="#666666"
|
||||||
|
Text="这里预留报告输出相关设置,可继续扩展公司信息、模板路径、签核信息和导出规则。" />
|
||||||
|
|
||||||
|
<Grid Margin="0,4,0,0">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="120" />
|
||||||
|
<ColumnDefinition Width="*" />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<TextBlock Grid.Column="0"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Text="报告标题:" />
|
||||||
|
<TextBox Grid.Column="1"
|
||||||
|
Height="30"
|
||||||
|
Padding="8,0"
|
||||||
|
Text="检测报告" />
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
<Grid Margin="0,10,0,0">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="120" />
|
||||||
|
<ColumnDefinition Width="*" />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<TextBlock Grid.Column="0"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Text="模板路径:" />
|
||||||
|
<TextBox Grid.Column="1"
|
||||||
|
Height="30"
|
||||||
|
Padding="8,0"
|
||||||
|
Text="C:\Reports\Templates\Default" />
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
<CheckBox Margin="0,12,0,0"
|
||||||
|
Content="导出时自动附带原始图像" />
|
||||||
|
<CheckBox Margin="0,8,0,0"
|
||||||
|
Content="导出时自动附带处理结果图像" />
|
||||||
|
</StackPanel>
|
||||||
|
</Border>
|
||||||
|
</StackPanel>
|
||||||
|
</ScrollViewer>
|
||||||
|
</TabItem>
|
||||||
|
</TabControl>
|
||||||
|
</DockPanel>
|
||||||
|
</Window>
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
using System.Windows;
|
||||||
|
|
||||||
|
namespace XplorePlane.Views
|
||||||
|
{
|
||||||
|
public partial class SettingsWindow : Window
|
||||||
|
{
|
||||||
|
public SettingsWindow(object viewModel)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
DataContext = viewModel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user