添加 ApplicationExt 静态类及初始化调用,解决因为未初始化主机导致的找不到资源问题

在 ApplicationExt.cs 文件中添加了一个新的静态类 ApplicationExt,包含 SetMainWindow 和 InitApplication 方法。更新 DesignPluginEntry.cs 和 PluginEntry.cs 文件,引入 Sinvo.EplanHpD.Plugin.WPFUI.Utils 命名空间,并在 Initialize 方法中调用 ApplicationExt.InitApplication 方法。
This commit is contained in:
lihanbo 2024-11-15 15:02:16 +08:00
parent a0f401aad6
commit 40cbbc7d55
3 changed files with 44 additions and 1 deletions

View File

@ -0,0 +1,35 @@
using System;
using System.Windows;
namespace Sinvo.EplanHpD.Plugin.WPFUI.Utils
{
public static class ApplicationExt
{
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;
}
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")
}
};
}
}
}
}

View File

@ -1,6 +1,7 @@
using EPLAN.Harness.API; using EPLAN.Harness.API;
using EPLAN.Harness.API.Plugins.Core; using EPLAN.Harness.API.Plugins.Core;
using Sinvo.EplanHpD.Plugin.WPFUI; using Sinvo.EplanHpD.Plugin.WPFUI;
using Sinvo.EplanHpD.Plugin.WPFUI.Utils;
using System; using System;
using System.Drawing; using System.Drawing;
using System.IO; using System.IO;
@ -9,7 +10,11 @@ using System.Windows.Forms.Integration;
namespace Sinvo.EplanHpD.Plugin namespace Sinvo.EplanHpD.Plugin
{ {
#if DEBUG
public class DesignPluginEntry : EPLAN.Harness.API.Plugins.IHpDPlugin public class DesignPluginEntry : EPLAN.Harness.API.Plugins.IHpDPlugin
#else
public class DesignPluginEntry
#endif
{ {
public string Name => "兴禾ProD插件-3D"; public string Name => "兴禾ProD插件-3D";
@ -55,6 +60,8 @@ namespace Sinvo.EplanHpD.Plugin
public void Initialize() public void Initialize()
{ {
AppDomainDllLoader.SetLaoder(); AppDomainDllLoader.SetLaoder();
ApplicationExt.InitApplication();
} }

View File

@ -4,6 +4,7 @@ using EPLAN.Harness.API.Plugins.Core;
using EPLAN.Harness.Core.Controls; using EPLAN.Harness.Core.Controls;
using EPLAN.Harness.ProjectCore; using EPLAN.Harness.ProjectCore;
using Sinvo.EplanHpD.Plugin.WPFUI; using Sinvo.EplanHpD.Plugin.WPFUI;
using Sinvo.EplanHpD.Plugin.WPFUI.Utils;
using System; using System;
using System.Drawing; using System.Drawing;
using System.IO; using System.IO;
@ -142,7 +143,7 @@ namespace Sinvo.EplanHpD.Plugin
{ {
//throw new NotImplementedException(); //throw new NotImplementedException();
AppDomainDllLoader.SetLaoder(); AppDomainDllLoader.SetLaoder();
ApplicationExt.InitApplication();
} }
public void Terminate() public void Terminate()