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(); } } }