diff --git a/Sinvo.EplanHpD.Plugin/DesignPluginEntry.cs b/Sinvo.EplanHpD.Plugin/DesignPluginEntry.cs
index 11a2f48..589ef77 100644
--- a/Sinvo.EplanHpD.Plugin/DesignPluginEntry.cs
+++ b/Sinvo.EplanHpD.Plugin/DesignPluginEntry.cs
@@ -1,6 +1,7 @@
using EPLAN.Harness.API;
using EPLAN.Harness.API.Plugins.Core;
using EPLAN.Harness.AppCore;
+using Sinvo.EplanHpD.Plugin.Service;
using Sinvo.EplanHpD.Plugin.WPFUI;
using Sinvo.EplanHpD.Plugin.WPFUI.Extension;
using Sinvo.EplanHpD.Plugin.WPFUI.Utils;
@@ -8,6 +9,7 @@ using System;
using System.Drawing;
using System.IO;
using System.Reflection;
+using System.Runtime.Remoting;
using System.Windows.Forms.Integration;
namespace Sinvo.EplanHpD.Plugin
@@ -51,15 +53,32 @@ namespace Sinvo.EplanHpD.Plugin
public string ToolbarTooltip => "伺服电机线缆抓取";
+ LectotypeWindow window;
+
public void Execute(HpdApi api)
{
+ new DBHelper().CodeFirst();
+
var doc = api.CurrentProject.GetActiveDocument();
- var window = new LectotypeWindow(doc.ID);
- ElementHost.EnableModelessKeyboardInterop(window);
- var mainApp = BaseApp.ActiveApplication;
- var helper = new System.Windows.Interop.WindowInteropHelper(window);
- helper.Owner = mainApp.Handle;
- window.Show();
+ if(window == null)
+ {
+ window = new LectotypeWindow(doc.ID);
+ ElementHost.EnableModelessKeyboardInterop(window);
+ var mainApp = BaseApp.ActiveApplication;
+ var helper = new System.Windows.Interop.WindowInteropHelper(window);
+ helper.Owner = mainApp.Handle;
+ window.Closed += delegate
+ {
+ window = null;
+ };
+ window.Show();
+ }
+ else
+ {
+ window.WindowState = System.Windows.WindowState.Normal;
+ window.Activate();
+ }
+
}
public void Initialize()
diff --git a/Sinvo.EplanHpD.Plugin/PluginEntry.cs b/Sinvo.EplanHpD.Plugin/PluginEntry.cs
index 57eb31b..3b6f434 100644
--- a/Sinvo.EplanHpD.Plugin/PluginEntry.cs
+++ b/Sinvo.EplanHpD.Plugin/PluginEntry.cs
@@ -116,10 +116,11 @@ namespace Sinvo.EplanHpD.Plugin
catch (Exception)
{
window = new MainWindow(flexReport);
+ // 解决WPF窗体在WinForm中无法输入的问题
ElementHost.EnableModelessKeyboardInterop(window);
window.Show();
}
- // 解决WPF窗体在WinForm中无法输入的问题
+
}
}
diff --git a/Sinvo.EplanHpD.Plugin/ScanPluginEntry.cs b/Sinvo.EplanHpD.Plugin/ScanPluginEntry.cs
index d104291..84088da 100644
--- a/Sinvo.EplanHpD.Plugin/ScanPluginEntry.cs
+++ b/Sinvo.EplanHpD.Plugin/ScanPluginEntry.cs
@@ -50,16 +50,28 @@ namespace Sinvo.EplanHpD.Plugin
public HpDModule Module => HpDModule.WorkSpace;
public string ToolbarTooltip => "扫描器";
-
+ ScannerWindow window;
public void Execute(HpdApi api)
{
//var doc = api.CurrentProject.GetActiveDocument();
- var window = new ScannerWindow();
- ElementHost.EnableModelessKeyboardInterop(window);
- var mainApp = BaseApp.ActiveApplication;
- var helper = new System.Windows.Interop.WindowInteropHelper(window);
- helper.Owner = mainApp.Handle;
- window.Show();
+ if (window == null)
+ {
+ window = new ScannerWindow();
+ ElementHost.EnableModelessKeyboardInterop(window);
+ var mainApp = BaseApp.ActiveApplication;
+ var helper = new System.Windows.Interop.WindowInteropHelper(window);
+ helper.Owner = mainApp.Handle;
+ window.Closed += delegate
+ {
+ window = null;
+ };
+ window.Show();
+ }
+ else
+ {
+ window.WindowState = System.Windows.WindowState.Normal;
+ window.Activate();
+ }
}
public void Initialize()
diff --git a/Sinvo.EplanHpD.Plugin/Sinvo.EplanHpD.Plugin.csproj b/Sinvo.EplanHpD.Plugin/Sinvo.EplanHpD.Plugin.csproj
index a8d00b3..401ddf2 100644
--- a/Sinvo.EplanHpD.Plugin/Sinvo.EplanHpD.Plugin.csproj
+++ b/Sinvo.EplanHpD.Plugin/Sinvo.EplanHpD.Plugin.csproj
@@ -70,27 +70,34 @@
RefDLL\EPLAN.Harness.API.dll
+ False
RefDLL\EPLAN.Harness.API.Plugins.dll
+ False
RefDLL\EPLAN.Harness.API.Plugins.Core.dll
+ False
False
RefDLL\EPLAN.Harness.AppCore.dll
+ False
RefDLL\EPLAN.Harness.Common.dll
+ False
False
RefDLL\EPLAN.Harness.Core.dll
+ False
False
RefDLL\EPLAN.Harness.ProjectCore.dll
+ False
..\packages\HandyControl.3.5.1\lib\net481\HandyControl.dll
@@ -129,6 +136,10 @@
+
+ {AD1AA2BC-9289-46AE-BDC0-30AE13F51B3F}
+ Sinvo.EplanHpD.Plugin.Service
+
{2DBCD22A-650D-4797-9908-9C4D5D6665FE}
Sinvo.EplanHpD.Plugin.WPFUI