using MaterialDesignColors; using MaterialDesignThemes.Wpf; using Models; using Models.Const; using SamplePre.Common.Helper; using SamplePre.Communication; using SamplePre.ProcessBll.BLL; using SamplePre.UIWpf; using SamplePreSystem.UI; using System.Configuration; using System.Data; using System.IO; using System.Windows; using System.Windows.Media; namespace SamplePreSystemApp { /// /// Interaction logic for App.xaml /// public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); //Window1 frm = new Window1(); //frm.ShowDialog(); //return; // 1. 禁止关闭第一个窗口就退出 ShutdownMode = ShutdownMode.OnExplicitShutdown; SetSkinColor(); ///初始化系统数据 InitSystemData(); LoginWindow loginWindow = new LoginWindow(); if (loginWindow.ShowDialog() != true) { //关闭应用 Application.Current.Shutdown(); return; } loginWindow.Close(); AppMainView mainWindow; ///初始plc连接信息 initPLC(); mainWindow = new AppMainView(); mainWindow.ShowDialog(); //关闭应用 Application.Current.Shutdown(); } public static void InitSystemData() { // 获取XML配置文件路径 string configPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SystemConfig.xml"); // 反序列化为强类型对象 SystemConst.SysConfigInfo = XmlSerializerHelper.DeserializeFromXml(configPath); SystemBll systemBll = new SystemBll(); //初始化字典数据 SystemConst.dictDatas = systemBll.QueryDictData(); } public void initPLC() { //设置plc连接方式 //SystemConst.ProtocolType = CommProtocolType.ModbusTcp; SystemConst.ProtocolType = CommProtocolType.S7; //初始化PLC var item = SystemConst.dictDatas.FirstOrDefault(p => p.id == "2");//主plc配置信息 if (item != null) { if (SystemConst.ProtocolType == CommProtocolType.S7) { string connParam = item.data_value;//"192.168.10.2:0:1"; SystemConst.MasterPLC = CommunicationFactory.CreateCommunication(CommProtocolType.S7, connParam); } else if (SystemConst.ProtocolType == CommProtocolType.ModbusTcp) { string connParam = item.data_value;//"192.168.10.2:0:1"; connParam = "127.0.0.1:502"; SystemConst.MasterPLC = CommunicationFactory.CreateCommunication(CommProtocolType.ModbusTcp, connParam); } } } public void SetSkinColor() { // ========== 在这里自定义主题颜色 ========== var paletteHelper = new PaletteHelper(); var theme = paletteHelper.GetTheme(); // 一、设置自定义 主颜色 Primary theme.PrimaryMid = new ColorPair( color: Color.FromRgb(0, 113, 203), // 你想要的RGB颜色 foregroundColor: Colors.White); // 文字颜色 // 二、设置自定义 强调色 Secondary theme.SecondaryMid = new ColorPair( color: Color.FromRgb(33, 150, 243), foregroundColor: Colors.White); // 三、设置浅色/深色 theme.SetBaseTheme(BaseTheme.Light); // 应用主题 paletteHelper.SetTheme(theme); } } }