EPLAN_PROD_Plugin/Sinvo.EplanHpD.Plugin.WPFUI/Extension/ApplicationExt.cs

53 lines
1.8 KiB
C#
Raw Normal View History


using System;
using System.Windows;
2024-12-05 14:37:31 +08:00
namespace Sinvo.EplanHpD.Plugin.WPFUI.Extension
{
public static class ApplicationExt
{
2025-04-03 17:30:50 +08:00
/// <summary>
/// 设置主窗口
/// </summary>
/// <param name="application"></param>
/// <param name="window"></param>
/// <exception cref="ArgumentNullException"></exception>
public static void SetMainWindow(this Application application, Window window)
{
if (application == null)
{
throw new ArgumentNullException(nameof(application));
}
if (window == null)
{
throw new ArgumentNullException(nameof(window));
}
application.MainWindow = window;
}
2025-04-03 17:30:50 +08:00
/// <summary>
/// 初始化应用程序,修复在某些情况下,引用第三方UI控件库的时候出现的异常与卡顿
/// </summary>
public static void InitApplication()
{
if (Application.Current == null)
{
new System.Windows.Application
{
ShutdownMode = ShutdownMode.OnExplicitShutdown,
Resources = new ResourceDictionary
{
Source = new Uri("pack://application:,,,/Sinvo.EplanHpD.Plugin.WPFUI;component/Themes/Theme.xaml")
},
};
Application.Current.DispatcherUnhandledException += Current_DispatcherUnhandledException;
}
}
private static void Current_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
HandyControl.Controls.MessageBox.Show($"{sender.GetType()}: {e.Exception.Message}");
e.Handled = true;
}
}
}