From d1b72117058f1131046b6aa3add8e3ccfae033d8 Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 09 十一月 2026 10:36:07 +0800
Subject: [PATCH] docs: CAN 模拟器独立 TCP 服务进程设计规格(统一 CanDeviceDriver + 双工推送协议)
---
HMI.SettingControl/SystemConfig.xaml.cs | 91 +++++++++++++++++++++++++++++++++++++++------
1 files changed, 79 insertions(+), 12 deletions(-)
diff --git a/HMI.SettingControl/SystemConfig.xaml.cs b/HMI.SettingControl/SystemConfig.xaml.cs
index 53e5e26..f9877f7 100644
--- a/HMI.SettingControl/SystemConfig.xaml.cs
+++ b/HMI.SettingControl/SystemConfig.xaml.cs
@@ -1,22 +1,24 @@
锘縰sing System;
+using System.IO;
+using System.Windows;
using System.Windows.Controls;
using HMI.Core.Api;
using HMI.Core.Setting;
using HMI.Core.Util;
using HMI.UI.Util;
+using Microsoft.Win32;
namespace HMI.SettingControl
{
/// <summary>
/// SystemConfig.xaml 鐨勪氦浜掗�昏緫
/// </summary>
- public partial class SystemConfig : UserControl, IConfigManager
+ public partial class SystemConfig : UserControl, IFolderOwner, IConfigManager
{
+ private string BaseFolder;
+ private SystemSettingModel Model;
public SystemConfig()
{
- var model = new SystemSettingModel();
- BeanUtil.Copy(SystemSetting.Instance, model);
- DataContext = model;
InitializeComponent();
}
@@ -27,27 +29,92 @@
public void ResetConfig()
{
- var model = new SystemSettingModel();
- BeanUtil.Copy(SystemSetting.Instance, model);
- DataContext = model;
+ Model = new SystemSettingModel();
+ BeanUtil.Copy(SystemSetting.Instance, Model);
+ DataContext = Model;
}
public void SaveConfig()
{
SystemSettingModel settingModel = (SystemSettingModel)DataContext;
- XmlHelper.SerializeToXml(PathHelper.ConfigFolder + "\\SystemConfig.xml", settingModel);
+ XmlHelper.SerializeToXml(Path.Combine(PathHelper.SettingFolder, "SystemConfig.xml"), settingModel);
SystemSetting.ReLoad();
}
- private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
+ public void SetBaseFolder(string folder)
{
- try
+ this.BaseFolder = folder;
+ }
+
+ private void Button_Click(object sender, RoutedEventArgs e)
+ {
+ Button btn = sender as Button;
+ switch (btn.Name)
{
+ case "BtnIcon":
+ OpenSelectIcon();
+ break;
+ case "BtnLoginLogo":
+ OpenSelectIcon2();
+ break;
+ default:
+ break;
}
- catch (Exception ex)
+ }
+
+ private void OpenSelectIcon()
+ {
+ string BasePath = PathHelper.IconFolder;
+
+ OpenFileDialog openFileDialog = new OpenFileDialog();
+ openFileDialog.Filter = "(*.*)|*.*";
+ openFileDialog.InitialDirectory = BasePath;
+ openFileDialog.Title = this.lang("App.SelectPic");
+ openFileDialog.Multiselect = false;
+
+ if (openFileDialog.ShowDialog() == true)
{
- this.Error($"淇濆瓨澶辫触锛亄ex.Message}");
+ string FileName = openFileDialog.FileName;
+ if (!FileName.StartsWith(BasePath))
+ {
+ ToastHelper.Warning(Window.GetWindow(this), this.lang("App.IconMustInFolder"));
+ }
+ else
+ {
+ Model.LogoPath = FileName.Replace(BasePath, ".");
+ }
}
}
+
+ private void OpenSelectIcon2()
+ {
+ string BasePath = PathHelper.IconFolder;
+
+ OpenFileDialog openFileDialog = new OpenFileDialog();
+ openFileDialog.Filter = "(*.*)|*.*";
+ openFileDialog.InitialDirectory = BasePath;
+ openFileDialog.Title = this.lang("App.SelectPic");
+ openFileDialog.Multiselect = false;
+
+ if (openFileDialog.ShowDialog() == true)
+ {
+ string FileName = openFileDialog.FileName;
+ if (!FileName.StartsWith(BasePath))
+ {
+ ToastHelper.Warning(Window.GetWindow(this), this.lang("App.IconMustInFolder"));
+ }
+ else
+ {
+ Model.LoginLogoPath = FileName.Replace(BasePath, ".");
+ }
+ }
+ }
+
+ private void UserControl_Loaded(object sender, RoutedEventArgs e)
+ {
+ CbLang.ItemsSource = LangUtil.langs;
+ ResetConfig();
+ Loaded -= UserControl_Loaded;
+ }
}
}
--
Gitblit v1.9.1