using System; using Autodesk.Windows; using Sai.Toolkit.Revit.Helpers; namespace Sai.Toolkit.Revit.Assist { /// /// 为菜单按钮设置快捷键的扩展类 /// /// /// private void SetShortcuts(Autodesk.Revit.UI.RibbonItem ribbonItem, params string[] shortcuts) /// { /// App.app.ControlledApplication.ApplicationInitialized += (object s, ApplicationInitializedEventArgs e)=> /// { /// KeyboardShortcutExtension.SetShortcutUnique(Autodesk.Windows.RibbonItem(需要转换), shortcuts); /// }; ///} /// public static class KeyboardShortcutExtension { /// /// 设置快捷键 /// /// /// /// public static bool SetShortcut(this RibbonItem ribbonItem, params string[] shortcuts) { KeyboardShortcutService keyboardShortcutService = new KeyboardShortcutService(); keyboardShortcutService.RemoveRibbonItemShortcut(ribbonItem.Id); return keyboardShortcutService.SetRibbonItemShortcut(ribbonItem.Id, string.Join("#", shortcuts)); } /// /// 设置唯一快捷键 /// /// /// /// public static bool SetShortcutUnique(this RibbonItem ribbonItem, params string[] shortcuts) { KeyboardShortcutService keyboardShortcutService = new KeyboardShortcutService(); string text = shortcuts[0]; return !keyboardShortcutService.HasRibbonItemShortcut(ribbonItem.Id) && !keyboardShortcutService.HasCommandShortcut(text) && keyboardShortcutService.SetRibbonItemShortcut(ribbonItem.Id, string.Join("#", shortcuts)); } /// /// 是否具有快捷键 /// /// /// public static bool HasShortcut(this RibbonItem ribbonItem) { return new KeyboardShortcutService().HasRibbonItemShortcut(ribbonItem.Id); } /// /// 移除快捷键 /// /// /// public static bool RemoveShortcut(this RibbonItem ribbonItem) { return new KeyboardShortcutService().RemoveRibbonItemShortcut(ribbonItem.Id); } } }