using System; using System.Windows.Controls; namespace InkCanvasForClass.PluginSdk { /// /// 方案 B:不依赖 Microsoft.Extensions.DependencyInjection 的轻量扩展注册表。 /// 宿主在适当时机将登记项挂到菜单 / 工具栏 / 设置 UI。 /// public interface IPluginRegistry { /// /// 当前正在执行注册的插件目录 Id(由宿主在加载每个插件前设置)。 /// string CurrentPluginId { get; } /// /// 注册主菜单或上下文菜单中的项; 由宿主解释(如 "Main.Plugins")。 /// void RegisterMenuItem(string groupKey, MenuItem item); /// /// 注册工具栏按钮。 /// void RegisterToolbarButton(Button button); /// /// 注册设置页; 在打开设置时惰性创建。 /// void RegisterSettingsPage(string pageId, string displayName, Func createView); } }