protected override void OnStartup(StartupEventArgs e) { ErrorLogging.Initialize(); AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; ErrorLogging.Log($"Starting TEdit {ErrorLogging.Version}"); ErrorLogging.Log($"OS: {Environment.OSVersion}"); try { ErrorLogging.Log($"OS Name: {DependencyChecker.GetOsVersion()}"); } catch (Exception ex) { ErrorLogging.Log("Failed to verify OS Version. TEdit may not run properly."); ErrorLogging.LogException(ex); } Assembly asm = Assembly.GetExecutingAssembly(); Version = FileVersionInfo.GetVersionInfo(asm.Location).ProductVersion; try { ErrorLogging.Log(DependencyChecker.GetDotNetVersion()); } catch (Exception ex) { ErrorLogging.Log("Failed to verify .Net Framework Version. TEdit may not run properly."); ErrorLogging.LogException(ex); } try { int directxMajorVersion = DependencyChecker.GetDirectxMajorVersion(); if (directxMajorVersion < 11) { ErrorLogging.Log($"DirectX {directxMajorVersion} unsupported. DirectX 11 or higher is required."); } } catch (Exception ex) { ErrorLogging.Log("Failed to verify DirectX Version. TEdit may not run properly."); ErrorLogging.LogException(ex); } try { DependencyChecker.CheckPaths(); } catch (Exception ex) { ErrorLogging.Log("Failed to verify Terraria Paths. TEdit may not run properly."); ErrorLogging.LogException(ex); } try { if (!DependencyChecker.VerifyTerraria()) { ErrorLogging.Log("Unable to locate Terraria. No texture data will be available."); } else { ErrorLogging.Log($"Terraria v{DependencyChecker.GetTerrariaVersion() ?? "not found"}"); ErrorLogging.Log($"Terraria Data Path: {DependencyChecker.PathToContent}"); } } catch (Exception ex) { ErrorLogging.Log("Failed to verify Terraria Paths. No texture data will be available."); ErrorLogging.LogException(ex); } if (e.Args != null && e.Args.Count() > 0) { ErrorLogging.Log($"Command Line Open: {e.Args[0]}"); Properties["OpenFile"] = e.Args[0]; } if (AppDomain.CurrentDomain.SetupInformation.ActivationArguments != null && AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData != null && AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData.Length > 0) { string fname = "No filename given"; try { fname = AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData[0]; // It comes in as a URI; this helps to convert it to a path. var uri = new Uri(fname); fname = uri.LocalPath; Properties["OpenFile"] = fname; } catch (Exception ex) { // For some reason, this couldn't be read as a URI. // Do what you must... ErrorLogging.LogException(ex); } } DispatcherHelper.Initialize(); TaskFactoryHelper.Initialize(); base.OnStartup(e); }
static App() { DispatcherHelper.Initialize(); }
private void OnProgressChanged(object sender, ProgressChangedEventArgs e) { DispatcherHelper.CheckBeginInvokeOnUI(() => Progress = e); }
protected override void OnStartup(StartupEventArgs e) { ErrorLogging.Initialize(); ErrorLogging.Log(string.Format("TEdit版本 {0} (CN: {1})", ErrorLogging.Version, CnVersion.ToString(3))); ErrorLogging.Log(string.Format("OS: {0}", Environment.OSVersion)); Assembly asm = Assembly.GetExecutingAssembly(); Version = FileVersionInfo.GetVersionInfo(asm.Location); try { int directxMajorVersion = DependencyChecker.GetDirectxMajorVersion(); if (directxMajorVersion < 11) { ErrorLogging.Log(string.Format("DirectX {0} 过旧. 需要 DirectX 11 及更高版本.", directxMajorVersion)); } } catch (Exception ex) { ErrorLogging.Log("无法验证DirectX版本. TEdit 可能无法正确运行."); ErrorLogging.LogException(ex); } try { DependencyChecker.CheckPaths(); } catch (Exception ex) { ErrorLogging.Log("寻找 Terraria 材质路径失败. TEdit 可能无法正确运行."); ErrorLogging.LogException(ex); } try { if (!DependencyChecker.VerifyTerraria()) { ErrorLogging.Log("寻找 Terraria 目录失败. 没有可用的材质."); } else { ErrorLogging.Log(string.Format("Terraria v{0}", DependencyChecker.GetTerrariaVersion() ?? "not found")); ErrorLogging.Log(string.Format("Terraria Data Path: {0}", DependencyChecker.PathToContent)); } // 日志文件里的内容, 暂时跳过汉化 } catch (Exception ex) { ErrorLogging.Log("Failed to verify Terraria Paths. No texture data will be available."); ErrorLogging.LogException(ex); } if (e.Args != null && e.Args.Count() > 0) { ErrorLogging.Log(string.Format("Command Line Open: {0}", e.Args[0])); this.Properties["OpenFile"] = e.Args[0]; } if (AppDomain.CurrentDomain.SetupInformation.ActivationArguments != null && AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData != null && AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData.Length > 0) { string fname = "No filename given"; try { fname = AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData[0]; // It comes in as a URI; this helps to convert it to a path. var uri = new Uri(fname); fname = uri.LocalPath; this.Properties["OpenFile"] = fname; } catch (Exception ex) { // For some reason, this couldn't be read as a URI. // Do what you must... ErrorLogging.LogException(ex); } } DispatcherHelper.Initialize(); TaskFactoryHelper.Initialize(); AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; base.OnStartup(e); }
protected override void OnStartup(StartupEventArgs e) { ErrorLogging.Initialize(); ErrorLogging.Log(string.Format("Starting TEdit {0}", ErrorLogging.Version)); ErrorLogging.Log(string.Format("OS: {0}", Environment.OSVersion)); Assembly asm = Assembly.GetExecutingAssembly(); Version = FileVersionInfo.GetVersionInfo(asm.Location); if (!DependencyChecker.VerifyDotNet()) { MessageBox.Show("Please install .Net 4.0", "Missing .Net", MessageBoxButton.OK, MessageBoxImage.Stop); ErrorLogging.LogException(new ApplicationException("MISSING .NET")); Shutdown(); } else { ErrorLogging.Log(".Net >= 4.0"); } if (!DependencyChecker.VerifyXna()) { MessageBox.Show("Please install XNA Framework 4.0", "Missing XNA", MessageBoxButton.OK, MessageBoxImage.Stop); ErrorLogging.LogException(new ApplicationException("MISSING XNA")); Shutdown(); } else { ErrorLogging.Log("XNA 4.0"); } if (!DependencyChecker.VerifyTerraria()) { ErrorLogging.Log("Unable to locate Terraria. No texture data will be available."); } else { ErrorLogging.Log(string.Format("Terraria Data Path: {0}", DependencyChecker.PathToContent)); } if (e.Args != null && e.Args.Count() > 0) { ErrorLogging.Log(string.Format("Command Line Open: {0}", e.Args[0])); this.Properties["OpenFile"] = e.Args[0]; } if (AppDomain.CurrentDomain.SetupInformation.ActivationArguments != null && AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData != null && AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData.Length > 0) { string fname = "No filename given"; try { fname = AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData[0]; // It comes in as a URI; this helps to convert it to a path. var uri = new Uri(fname); fname = uri.LocalPath; this.Properties["OpenFile"] = fname; } catch (Exception ex) { // For some reason, this couldn't be read as a URI. // Do what you must... ErrorLogging.LogException(ex); } } DispatcherHelper.Initialize(); TaskFactoryHelper.Initialize(); AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; base.OnStartup(e); }
/// <summary> /// Invoked when the application is launched normally by the end user. Other entry points /// will be used such as when the application is launched to open a specific file. /// </summary> /// <param name="e">Details about the launch request and process.</param> protected override void OnLaunched(LaunchActivatedEventArgs e) { if (_hasSetup) { return; } Frame rootFrame = Window.Current.Content as Frame; ApplicationView.GetForCurrentView().SetPreferredMinSize(new Size(400, 500)); if (Application.Current.RequestedTheme == ApplicationTheme.Dark) { (Current.Resources["AcrylicMessageBackground"] as AcrylicBrush).TintLuminosityOpacity = 0.95; (Current.Resources["AcrylicChannelPaneBackground"] as AcrylicBrush).TintLuminosityOpacity = 0.95; (Current.Resources["AcrylicGuildPaneBackground"] as AcrylicBrush).TintLuminosityOpacity = 0.95; (Current.Resources["AcrylicCommandBarBackground"] as AcrylicBrush).TintLuminosityOpacity = 0.95; (Current.Resources["AcrylicSubFrameBackground"] as AcrylicBrush).TintLuminosityOpacity = 0.95; (Current.Resources["AcrylicUserBackground"] as AcrylicBrush).TintLuminosityOpacity = 0.95; } SetupResources(); RegisterMessages(); SetupTitleBar(); if (SystemInformation.DeviceFamily == "Windows.Xbox") { SetupCinematic(); } // Do not repeat app initialization when the Window already has content, // just ensure that the window is active if (rootFrame == null) { // Create a Frame to act as the navigation context and navigate to the first page rootFrame = new Frame(); rootFrame.NavigationFailed += OnNavigationFailed; if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) { // TODO: Load state from previously suspended application } // Place the frame in the current Window Window.Current.Content = rootFrame; } DispatcherHelper.Initialize(); if (e.PrelaunchActivated == false) { if (rootFrame.Content == null) { // When the navigation stack isn't restored navigate to the first page, // configuring the new page by passing required information as a navigation // parameter rootFrame.Content = new MainView(e.SplashScreen); } // Ensure the current window is active Window.Current.Activate(); } if (SystemInformation.DeviceFamily == "Windows.Xbox") { rootFrame.SizeChanged += ScaleDown; } _hasSetup = true; }