From 1fca17d5573a2f1274cd106d0a718703a375a14d Mon Sep 17 00:00:00 2001
From: CJKmkp <2564608840@qq.com>
Date: Sun, 5 Apr 2026 14:06:49 +0800
Subject: [PATCH] =?UTF-8?q?add:=E6=8F=92=E4=BB=B6=E7=B3=BB=E7=BB=9F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Ink Canvas.sln | 67 +
.../Helpers/Plugins/EnhancedPluginBase.cs | 92 --
.../Helpers/Plugins/EnhancedPluginBaseV2.cs | 241 ---
.../Helpers/Plugins/ICCPPPluginAdapter.cs | 2 +
Ink Canvas/Helpers/Plugins/IEnhancedPlugin.cs | 48 -
Ink Canvas/Helpers/Plugins/IGetService.cs | 4 +-
Ink Canvas/Helpers/Plugins/PluginBase.cs | 5 +
.../Plugins/PluginConfigurationManager.cs | 273 ----
Ink Canvas/Helpers/Plugins/PluginManager.cs | 179 ++-
Ink Canvas/Helpers/Plugins/PluginRuntime.cs | 25 +
.../Helpers/Plugins/PluginSdkHostContext.cs | 1289 +++++++++++++++++
.../Helpers/Plugins/PluginServiceManager.cs | 503 +------
Ink Canvas/Helpers/Plugins/PluginTemplate.cs | 276 ----
.../Helpers/Plugins/SdkPluginAdapter.cs | 133 ++
Ink Canvas/Helpers/TimeMachine.cs | 8 +-
Ink Canvas/InkCanvasForClass.csproj | 4 +
Ink Canvas/MainWindow.xaml.cs | 8 +-
.../MainWindow_cs/MW_FloatingBarIcons.cs | 4 +-
.../MainWindow_cs/MainWindow_PluginHostApi.cs | 152 ++
Ink Canvas/packages.lock.json | 18 +
Plugins/Host/CollectingPluginRegistry.cs | 104 ++
Plugins/Host/InkCanvas.PluginHost.csproj | 16 +
Plugins/SDK/IInkCanvasPlugin.cs | 103 ++
Plugins/SDK/IPluginContext.cs | 569 ++++++++
Plugins/SDK/IPluginRegistry.cs | 32 +
Plugins/SDK/InkCanvas.PluginSdk.csproj | 35 +
Plugins/SDK/InkCanvasPluginBase.cs | 268 ++++
Plugins/SDK/NotificationType.cs | 28 +
Plugins/SDK/README.md | 160 ++
.../SampleClockPlugin/ClockOverlayPlugin.cs | 137 ++
.../SampleClockPlugin.csproj | 16 +
31 files changed, 3361 insertions(+), 1438 deletions(-)
delete mode 100644 Ink Canvas/Helpers/Plugins/EnhancedPluginBase.cs
delete mode 100644 Ink Canvas/Helpers/Plugins/EnhancedPluginBaseV2.cs
delete mode 100644 Ink Canvas/Helpers/Plugins/IEnhancedPlugin.cs
delete mode 100644 Ink Canvas/Helpers/Plugins/PluginConfigurationManager.cs
create mode 100644 Ink Canvas/Helpers/Plugins/PluginRuntime.cs
create mode 100644 Ink Canvas/Helpers/Plugins/PluginSdkHostContext.cs
delete mode 100644 Ink Canvas/Helpers/Plugins/PluginTemplate.cs
create mode 100644 Ink Canvas/Helpers/Plugins/SdkPluginAdapter.cs
create mode 100644 Ink Canvas/MainWindow_cs/MainWindow_PluginHostApi.cs
create mode 100644 Plugins/Host/CollectingPluginRegistry.cs
create mode 100644 Plugins/Host/InkCanvas.PluginHost.csproj
create mode 100644 Plugins/SDK/IInkCanvasPlugin.cs
create mode 100644 Plugins/SDK/IPluginContext.cs
create mode 100644 Plugins/SDK/IPluginRegistry.cs
create mode 100644 Plugins/SDK/InkCanvas.PluginSdk.csproj
create mode 100644 Plugins/SDK/InkCanvasPluginBase.cs
create mode 100644 Plugins/SDK/NotificationType.cs
create mode 100644 Plugins/SDK/README.md
create mode 100644 Plugins/Samples/SampleClockPlugin/ClockOverlayPlugin.cs
create mode 100644 Plugins/Samples/SampleClockPlugin/SampleClockPlugin.csproj
diff --git a/Ink Canvas.sln b/Ink Canvas.sln
index 0daac4d2..29bb5abd 100644
--- a/Ink Canvas.sln
+++ b/Ink Canvas.sln
@@ -1,9 +1,16 @@
+
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.5.33530.505
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "InkCanvasForClass", "Ink Canvas\InkCanvasForClass.csproj", "{8D0EDFC7-F974-4571-BC49-6F3A6653FE81}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "InkCanvas.PluginSdk", "Plugins\SDK\InkCanvas.PluginSdk.csproj", "{E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7081}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "InkCanvas.PluginHost", "Plugins\Host\InkCanvas.PluginHost.csproj", "{E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7082}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleClockPlugin", "Plugins\Samples\SampleClockPlugin\SampleClockPlugin.csproj", "{60891C83-8F04-438E-8064-D827E7AC1817}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -38,6 +45,66 @@ Global
{8D0EDFC7-F974-4571-BC49-6F3A6653FE81}.Release|x64.Build.0 = Release|Any CPU
{8D0EDFC7-F974-4571-BC49-6F3A6653FE81}.Release|x86.ActiveCfg = Release|Any CPU
{8D0EDFC7-F974-4571-BC49-6F3A6653FE81}.Release|x86.Build.0 = Release|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7081}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7081}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7081}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7081}.Debug|ARM.Build.0 = Debug|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7081}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7081}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7081}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7081}.Debug|x64.Build.0 = Debug|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7081}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7081}.Debug|x86.Build.0 = Debug|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7081}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7081}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7081}.Release|ARM.ActiveCfg = Release|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7081}.Release|ARM.Build.0 = Release|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7081}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7081}.Release|ARM64.Build.0 = Release|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7081}.Release|x64.ActiveCfg = Release|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7081}.Release|x64.Build.0 = Release|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7081}.Release|x86.ActiveCfg = Release|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7081}.Release|x86.Build.0 = Release|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7082}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7082}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7082}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7082}.Debug|ARM.Build.0 = Debug|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7082}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7082}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7082}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7082}.Debug|x64.Build.0 = Debug|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7082}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7082}.Debug|x86.Build.0 = Debug|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7082}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7082}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7082}.Release|ARM.ActiveCfg = Release|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7082}.Release|ARM.Build.0 = Release|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7082}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7082}.Release|ARM64.Build.0 = Release|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7082}.Release|x64.ActiveCfg = Release|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7082}.Release|x64.Build.0 = Release|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7082}.Release|x86.ActiveCfg = Release|Any CPU
+ {E4B8F2A1-6C3D-4E9F-A1B2-3C4D5E6F7082}.Release|x86.Build.0 = Release|Any CPU
+ {60891C83-8F04-438E-8064-D827E7AC1817}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {60891C83-8F04-438E-8064-D827E7AC1817}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {60891C83-8F04-438E-8064-D827E7AC1817}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {60891C83-8F04-438E-8064-D827E7AC1817}.Debug|ARM.Build.0 = Debug|Any CPU
+ {60891C83-8F04-438E-8064-D827E7AC1817}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {60891C83-8F04-438E-8064-D827E7AC1817}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {60891C83-8F04-438E-8064-D827E7AC1817}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {60891C83-8F04-438E-8064-D827E7AC1817}.Debug|x64.Build.0 = Debug|Any CPU
+ {60891C83-8F04-438E-8064-D827E7AC1817}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {60891C83-8F04-438E-8064-D827E7AC1817}.Debug|x86.Build.0 = Debug|Any CPU
+ {60891C83-8F04-438E-8064-D827E7AC1817}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {60891C83-8F04-438E-8064-D827E7AC1817}.Release|Any CPU.Build.0 = Release|Any CPU
+ {60891C83-8F04-438E-8064-D827E7AC1817}.Release|ARM.ActiveCfg = Release|Any CPU
+ {60891C83-8F04-438E-8064-D827E7AC1817}.Release|ARM.Build.0 = Release|Any CPU
+ {60891C83-8F04-438E-8064-D827E7AC1817}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {60891C83-8F04-438E-8064-D827E7AC1817}.Release|ARM64.Build.0 = Release|Any CPU
+ {60891C83-8F04-438E-8064-D827E7AC1817}.Release|x64.ActiveCfg = Release|Any CPU
+ {60891C83-8F04-438E-8064-D827E7AC1817}.Release|x64.Build.0 = Release|Any CPU
+ {60891C83-8F04-438E-8064-D827E7AC1817}.Release|x86.ActiveCfg = Release|Any CPU
+ {60891C83-8F04-438E-8064-D827E7AC1817}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/Ink Canvas/Helpers/Plugins/EnhancedPluginBase.cs b/Ink Canvas/Helpers/Plugins/EnhancedPluginBase.cs
deleted file mode 100644
index d22ca80e..00000000
--- a/Ink Canvas/Helpers/Plugins/EnhancedPluginBase.cs
+++ /dev/null
@@ -1,92 +0,0 @@
-using System.Windows.Controls;
-
-namespace Ink_Canvas.Helpers.Plugins
-{
- ///
- /// 增强的插件基类,提供对插件服务的访问和基本实现
- ///
- public abstract class EnhancedPluginBase : PluginBase, IEnhancedPlugin
- {
- ///
- /// 插件服务实例
- ///
- public IPluginService PluginService { get; private set; }
-
- ///
- /// 构造函数
- ///
- protected EnhancedPluginBase()
- {
- PluginService = PluginServiceManager.Instance;
- }
-
- ///
- /// 插件启动时调用,在Initialize之后
- ///
- public virtual void OnStartup()
- {
- LogHelper.WriteLogToFile($"插件 {Name} 已启动");
- }
-
- ///
- /// 插件关闭时调用,在Cleanup之前
- ///
- public virtual void OnShutdown()
- {
- LogHelper.WriteLogToFile($"插件 {Name} 正在关闭");
- }
-
- ///
- /// 获取插件的菜单项
- ///
- /// 菜单项集合
- public virtual MenuItem[] GetMenuItems()
- {
- return new MenuItem[0];
- }
-
- ///
- /// 获取插件的工具栏按钮
- ///
- /// 工具栏按钮集合
- public virtual Button[] GetToolbarButtons()
- {
- return new Button[0];
- }
-
- ///
- /// 获取插件的状态栏信息
- ///
- /// 状态栏信息
- public virtual string GetStatusBarInfo()
- {
- return $"{Name} v{Version} - {(IsEnabled ? "已启用" : "已禁用")}";
- }
-
- ///
- /// 插件配置变更时调用
- ///
- public virtual void OnConfigurationChanged()
- {
- LogHelper.WriteLogToFile($"插件 {Name} 配置已变更");
- }
-
- ///
- /// 重写初始化方法,调用OnStartup
- ///
- public override void Initialize()
- {
- base.Initialize();
- OnStartup();
- }
-
- ///
- /// 重写清理方法,调用OnShutdown
- ///
- public override void Cleanup()
- {
- OnShutdown();
- base.Cleanup();
- }
- }
-}
\ No newline at end of file
diff --git a/Ink Canvas/Helpers/Plugins/EnhancedPluginBaseV2.cs b/Ink Canvas/Helpers/Plugins/EnhancedPluginBaseV2.cs
deleted file mode 100644
index 218068b6..00000000
--- a/Ink Canvas/Helpers/Plugins/EnhancedPluginBaseV2.cs
+++ /dev/null
@@ -1,241 +0,0 @@
-using System.Windows.Controls;
-
-namespace Ink_Canvas.Helpers.Plugins
-{
- ///
- /// 增强的插件基类 V2,提供对三个专门服务接口的访问
- /// 插件开发者可以根据需要选择性地使用这些服务
- ///
- public abstract class EnhancedPluginBaseV2 : PluginBase, IEnhancedPlugin
- {
- ///
- /// 获取服务实例
- ///
- public IGetService GetService { get; private set; }
-
- ///
- /// 窗口服务实例
- ///
- public IWindowService WindowService { get; private set; }
-
- ///
- /// 操作服务实例
- ///
- public IActionService ActionService { get; private set; }
-
- ///
- /// 插件服务实例(兼容性)
- ///
- public IPluginService PluginService { get; private set; }
-
- ///
- /// 构造函数
- ///
- protected EnhancedPluginBaseV2()
- {
- // 初始化所有服务实例
- PluginService = PluginServiceManager.Instance;
- GetService = PluginServiceManager.Instance;
- WindowService = PluginServiceManager.Instance;
- ActionService = PluginServiceManager.Instance;
- }
-
- ///
- /// 插件启动时调用,在Initialize之后
- ///
- public virtual void OnStartup()
- {
- LogHelper.WriteLogToFile($"插件 {Name} 已启动");
- }
-
- ///
- /// 插件关闭时调用,在Cleanup之前
- ///
- public virtual void OnShutdown()
- {
- LogHelper.WriteLogToFile($"插件 {Name} 正在关闭");
- }
-
- ///
- /// 获取插件的菜单项
- ///
- /// 菜单项集合
- public virtual MenuItem[] GetMenuItems()
- {
- return new MenuItem[0];
- }
-
- ///
- /// 获取插件的工具栏按钮
- ///
- /// 工具栏按钮集合
- public virtual Button[] GetToolbarButtons()
- {
- return new Button[0];
- }
-
- ///
- /// 获取插件的状态栏信息
- ///
- /// 状态栏信息
- public virtual string GetStatusBarInfo()
- {
- return $"{Name} v{Version} - {(IsEnabled ? "已启用" : "已禁用")}";
- }
-
- ///
- /// 插件配置变更时调用
- ///
- public virtual void OnConfigurationChanged()
- {
- LogHelper.WriteLogToFile($"插件 {Name} 配置已变更");
- }
-
- #region 便捷方法
-
- ///
- /// 显示通知消息
- ///
- /// 消息内容
- /// 消息类型
- protected void ShowNotification(string message, NotificationType type = NotificationType.Info)
- {
- WindowService.ShowNotification(message, type);
- }
-
- ///
- /// 显示确认对话框
- ///
- /// 消息内容
- /// 标题
- /// 用户选择结果
- protected bool ShowConfirmDialog(string message, string title = "确认")
- {
- return WindowService.ShowConfirmDialog(message, title);
- }
-
- ///
- /// 显示输入对话框
- ///
- /// 提示消息
- /// 标题
- /// 默认值
- /// 用户输入内容
- protected string ShowInputDialog(string message, string title = "输入", string defaultValue = "")
- {
- return WindowService.ShowInputDialog(message, title, defaultValue);
- }
-
- ///
- /// 获取系统设置
- ///
- /// 设置类型
- /// 设置键
- /// 默认值
- /// 设置值
- protected T GetSetting(string key, T defaultValue = default(T))
- {
- return GetService.GetSetting(key, defaultValue);
- }
-
- ///
- /// 设置系统设置
- ///
- /// 设置类型
- /// 设置键
- /// 设置值
- protected void SetSetting(string key, T value)
- {
- ActionService.SetSetting(key, value);
- }
-
- ///
- /// 保存设置
- ///
- protected void SaveSettings()
- {
- ActionService.SaveSettings();
- }
-
- ///
- /// 清除当前画布
- ///
- protected void ClearCanvas()
- {
- ActionService.ClearCanvas();
- }
-
- ///
- /// 撤销操作
- ///
- protected void Undo()
- {
- ActionService.Undo();
- }
-
- ///
- /// 重做操作
- ///
- protected void Redo()
- {
- ActionService.Redo();
- }
-
- ///
- /// 检查是否可以撤销
- ///
- protected bool CanUndo => GetService.CanUndo;
-
- ///
- /// 检查是否可以重做
- ///
- protected bool CanRedo => GetService.CanRedo;
-
- ///
- /// 获取当前绘制模式
- ///
- protected int CurrentDrawingMode => GetService.CurrentDrawingMode;
-
- ///
- /// 设置绘制模式
- ///
- /// 绘制模式
- protected void SetDrawingMode(int mode)
- {
- ActionService.SetDrawingMode(mode);
- }
-
- ///
- /// 注册事件处理器
- ///
- /// 事件名称
- /// 事件处理器
- protected void RegisterEventHandler(string eventName, System.EventHandler handler)
- {
- ActionService.RegisterEventHandler(eventName, handler);
- }
-
- ///
- /// 注销事件处理器
- ///
- /// 事件名称
- /// 事件处理器
- protected void UnregisterEventHandler(string eventName, System.EventHandler handler)
- {
- ActionService.UnregisterEventHandler(eventName, handler);
- }
-
- ///
- /// 触发事件
- ///
- /// 事件名称
- /// 事件发送者
- /// 事件参数
- protected void TriggerEvent(string eventName, object sender, System.EventArgs args)
- {
- ActionService.TriggerEvent(eventName, sender, args);
- }
-
- #endregion
- }
-}
\ No newline at end of file
diff --git a/Ink Canvas/Helpers/Plugins/ICCPPPluginAdapter.cs b/Ink Canvas/Helpers/Plugins/ICCPPPluginAdapter.cs
index e018ac0d..4287225d 100644
--- a/Ink Canvas/Helpers/Plugins/ICCPPPluginAdapter.cs
+++ b/Ink Canvas/Helpers/Plugins/ICCPPPluginAdapter.cs
@@ -14,6 +14,8 @@ namespace Ink_Canvas.Helpers.Plugins
private readonly Version _pluginVersion;
private bool _isInitialized;
+ public override string PluginStateKey => "ICCPP:" + (_pluginPath ?? string.Empty);
+
///
/// 创建 ICCPP 插件适配器
///
diff --git a/Ink Canvas/Helpers/Plugins/IEnhancedPlugin.cs b/Ink Canvas/Helpers/Plugins/IEnhancedPlugin.cs
deleted file mode 100644
index 312eb10c..00000000
--- a/Ink Canvas/Helpers/Plugins/IEnhancedPlugin.cs
+++ /dev/null
@@ -1,48 +0,0 @@
-using System.Windows.Controls;
-
-namespace Ink_Canvas.Helpers.Plugins
-{
- ///
- /// 增强的插件接口,提供对插件服务的访问
- ///
- public interface IEnhancedPlugin : IPlugin
- {
- ///
- /// 获取插件服务实例
- ///
- IPluginService PluginService { get; }
-
- ///
- /// 插件启动时调用,在Initialize之后
- ///
- void OnStartup();
-
- ///
- /// 插件关闭时调用,在Cleanup之前
- ///
- void OnShutdown();
-
- ///
- /// 获取插件的菜单项
- ///
- /// 菜单项集合
- MenuItem[] GetMenuItems();
-
- ///
- /// 获取插件的工具栏按钮
- ///
- /// 工具栏按钮集合
- Button[] GetToolbarButtons();
-
- ///
- /// 获取插件的状态栏信息
- ///
- /// 状态栏信息
- string GetStatusBarInfo();
-
- ///
- /// 插件配置变更时调用
- ///
- void OnConfigurationChanged();
- }
-}
\ No newline at end of file
diff --git a/Ink Canvas/Helpers/Plugins/IGetService.cs b/Ink Canvas/Helpers/Plugins/IGetService.cs
index ab48889a..60f299ba 100644
--- a/Ink Canvas/Helpers/Plugins/IGetService.cs
+++ b/Ink Canvas/Helpers/Plugins/IGetService.cs
@@ -20,12 +20,12 @@ namespace Ink_Canvas.Helpers.Plugins
///
/// 获取当前画布
///
- InkCanvas CurrentCanvas { get; }
+ global::System.Windows.Controls.InkCanvas CurrentCanvas { get; }
///
/// 获取所有画布页面
///
- List