using Ink_Canvas.Helpers; using iNKORE.UI.WPF.Modern.Controls; using System; using System.Linq; using System.Reflection; using System.Windows; using MessageBox = iNKORE.UI.WPF.Modern.Controls.MessageBox; namespace Ink_Canvas { /// /// Interaction logic for App.xaml /// public partial class App : Application { System.Threading.Mutex mutex; public static string[] StartArgs = null; public static string RootPath = Environment.GetEnvironmentVariable("APPDATA") + "\\Ink Canvas\\"; public App() { this.Startup += new StartupEventHandler(App_Startup); this.DispatcherUnhandledException += App_DispatcherUnhandledException; } private void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e) { Ink_Canvas.MainWindow.ShowNewMessage("抱歉,出现未预期的异常,可能导致 Ink Canvas 画板运行不稳定。\n建议保存墨迹后重启应用。", true); LogHelper.NewLog(e.Exception.ToString()); e.Handled = true; } void App_Startup(object sender, StartupEventArgs e) { /*if (!StoreHelper.IsStoreApp) */RootPath = AppDomain.CurrentDomain.SetupInformation.ApplicationBase; LogHelper.NewLog(string.Format("Ink Canvas Starting (Version: {0})", Assembly.GetExecutingAssembly().GetName().Version.ToString())); bool ret; mutex = new System.Threading.Mutex(true, "Ink_Canvas", out ret); if (!ret && !e.Args.Contains("-m")) //-m multiple { LogHelper.NewLog("Detected existing instance"); MessageBox.Show("已有一个程序实例正在运行"); LogHelper.NewLog("Ink Canvas automatically closed"); Environment.Exit(0); } StartArgs = e.Args; } private void ScrollViewer_PreviewMouseWheel(object sender, System.Windows.Input.MouseWheelEventArgs e) { try { if (System.Windows.Forms.SystemInformation.MouseWheelScrollLines == -1) e.Handled = false; else try { ScrollViewerEx SenderScrollViewer = (ScrollViewerEx)sender; SenderScrollViewer.ScrollToVerticalOffset(SenderScrollViewer.VerticalOffset - e.Delta * 10 * System.Windows.Forms.SystemInformation.MouseWheelScrollLines / (double)120); e.Handled = true; } catch { } } catch { } } } }