using DM_Weight.util.TabTip; using DM_Weight.util; using DM_Weight.ViewModels; using DM_Weight.Views.Dialog; using DM_Weight.Views; using log4net.Config; using Prism.Ioc; using Prism.Services.Dialogs; using System; using System.Collections.Generic; using System.ComponentModel; using System.Configuration; using System.Data; using System.IO; using System.Linq; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using Prism.Unity; using log4net; using System.Windows.Interop; using System.Windows.Threading; using System.Timers; using DM_Weight.HIKVISION; namespace DM_Weight { /// /// Interaction logic for App.xaml /// public partial class App : PrismApplication { private readonly ILog logger = LogManager.GetLogger(typeof(App)); public App() { TabTipAutomation.IgnoreHardwareKeyboard = HardwareKeyboardIgnoreOptions.IgnoreAll; TabTipAutomation.BindTo(); TabTipAutomation.BindTo(); } protected override Window CreateShell() { //UI线程未捕获异常处理事件 this.DispatcherUnhandledException += OnDispatcherUnhandledException; //Task线程内未捕获异常处理事件 TaskScheduler.UnobservedTaskException += OnUnobservedTaskException; //多线程异常 AppDomain.CurrentDomain.UnhandledException += OnUnhandledException; return Container.Resolve(); } void OnDispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e) { logger.Error($"发生错误:{e.Exception.Message}"); e.Handled = true; } void OnUnobservedTaskException(object sender, UnobservedTaskExceptionEventArgs e) { foreach (Exception item in e.Exception.InnerExceptions) { logger.Error($"异常类型:{item.GetType()}{Environment.NewLine}来自:{item.Source}{Environment.NewLine}异常内容:{item.Message}"); } //将异常标识为已经观察到 e.SetObserved(); } void OnUnhandledException(object sender, UnhandledExceptionEventArgs e) { logger.Error($"Unhandled exception.{e.ToString()}"); } protected override void InitializeShell(Window shell) { base.InitializeShell(shell); } protected override void RegisterTypes(IContainerRegistry containerRegistry) { //日期加时间页面 containerRegistry.RegisterDialog(); containerRegistry.RegisterForNavigation(); // 注入日志 XmlConfigurator.ConfigureAndWatch(new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "log4net.config")); //containerRegistry.RegisterInstance(LogManager.GetLogger("")); // 串口工具 //containerRegistry.RegisterSingleton(); // 指纹机工具 //containerRegistry.RegisterSingleton(); // 组态屏工具 //containerRegistry.RegisterSingleton(); // 录像机 //containerRegistry.RegisterSingleton(); containerRegistry.Register(); // 主窗口 containerRegistry.Register(); containerRegistry.RegisterForNavigation(); // 分页 //containerRegistry.Register(); //containerRegistry.Register(); // 登录页面 containerRegistry.RegisterForNavigation(); // 布局页面 containerRegistry.RegisterForNavigation(); // 录入指纹模态框 //containerRegistry.RegisterDialog(); //containerRegistry.RegisterForNavigation(); #region 取药 ////交接柜补药 //containerRegistry.RegisterForNavigation(); ////交接柜补药页面弹窗 //containerRegistry.RegisterDialog(); //containerRegistry.RegisterForNavigation(); //// 处方取药页面 //containerRegistry.RegisterForNavigation(); //// 处方取药模态框 //containerRegistry.RegisterDialog(); //containerRegistry.RegisterForNavigation(); //// 调拨取药页面 //containerRegistry.RegisterForNavigation(); //// 调拨取药模态框 //containerRegistry.RegisterDialog(); //containerRegistry.RegisterForNavigation(); //// 抽屉取药页面 //containerRegistry.RegisterForNavigation(); //// 自选取药模态框 //containerRegistry.RegisterDialog(); //containerRegistry.RegisterForNavigation(); //// 自选取药页面 //containerRegistry.RegisterForNavigation(); ////多处方取药 //containerRegistry.RegisterForNavigation(); //containerRegistry.RegisterDialog(); //containerRegistry.RegisterForNavigation(); #endregion #region 加药 // 自选加药页面 //containerRegistry.RegisterForNavigation(); //// 调拨加药页面 //containerRegistry.RegisterForNavigation(); //// 调拨取药模态框 //containerRegistry.RegisterDialog(); //containerRegistry.RegisterForNavigation(); //// 抽屉加药页面 //containerRegistry.RegisterForNavigation(); //// 自选加药模态框 //containerRegistry.RegisterDialog(); //containerRegistry.RegisterForNavigation(); ////多批次抽屉加药 //containerRegistry.RegisterForNavigation(); ////药品请领 //containerRegistry.RegisterForNavigation(); //// 药品请领模态框 //containerRegistry.RegisterDialog(); //containerRegistry.RegisterForNavigation(); ////请领列表 //containerRegistry.RegisterForNavigation(); ////请领入库 //containerRegistry.RegisterForNavigation(); #endregion #region 还药 // 还药页面 //containerRegistry.RegisterForNavigation(); //// 按记录归还药品模态框 //containerRegistry.RegisterDialog(); //containerRegistry.RegisterForNavigation(); //// 还药页面2 //containerRegistry.RegisterForNavigation(); //// 按处方归还药品模态框 //containerRegistry.RegisterDialog(); //containerRegistry.RegisterForNavigation(); //// 还空瓶页面 //containerRegistry.RegisterForNavigation(); //// 归还空瓶模态框 //containerRegistry.RegisterDialog(); //containerRegistry.RegisterForNavigation(); //// 空瓶销毁模态框 //containerRegistry.RegisterDialog(); //containerRegistry.RegisterForNavigation(); #endregion #region 库存管理 // 库存列表页面 //containerRegistry.RegisterForNavigation(); //// 库位绑定模态框 //containerRegistry.RegisterDialog(); //containerRegistry.RegisterForNavigation(); ////同一药品多批次库位绑定 //containerRegistry.RegisterForNavigation(); //// 库存盘点页面 //containerRegistry.RegisterForNavigation(); //// 药品列表页面 //containerRegistry.RegisterForNavigation(); ////交接班记录 //containerRegistry.RegisterForNavigation(); ////交接班弹窗 //containerRegistry.RegisterDialog(); //containerRegistry.RegisterForNavigation(); containerRegistry.RegisterForNavigation(); containerRegistry.RegisterForNavigation(); #endregion #region 系统设置 // 用户管理页面 //containerRegistry.RegisterForNavigation(); //// 编辑用户模态框 //containerRegistry.RegisterDialog(); //containerRegistry.RegisterForNavigation(); //// 角色管理页面 //containerRegistry.RegisterForNavigation(); //// 系统设置 //containerRegistry.RegisterForNavigation(); //// 调试页面 //containerRegistry.RegisterForNavigation(); ////主设置页面 //containerRegistry.RegisterForNavigation(); ////两个冰箱抽屉设置页面 //containerRegistry.RegisterForNavigation(); ////只有一个冰箱抽屉设置页面 //containerRegistry.RegisterForNavigation(); #endregion // 设备记录页面 //containerRegistry.RegisterForNavigation(); //containerRegistry.RegisterForNavigation(); } } }