优化更新代码,添加界面功能并整合

This commit is contained in:
GG Z
2025-02-10 20:53:40 +08:00
parent 83b846f15f
commit 978e03a67f
1389 changed files with 95739 additions and 22200 deletions

View File

@@ -0,0 +1,63 @@
using Autodesk.Windows;
using ShrlAlgo.Toolkit.Revit.Helpers;
namespace ShrlAlgo.Toolkit.Revit.Assist
{
/// <summary>
/// 为菜单按钮设置快捷键的扩展类
/// </summary>
/// <para>
/// 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);
/// };
///}
/// </para>
public static class KeyboardShortcutExtension
{
/// <summary>
/// 设置快捷键
/// </summary>
/// <param name="ribbonItem"></param>
/// <param name="shortcuts"></param>
/// <returns></returns>
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));
}
/// <summary>
/// 设置唯一快捷键
/// </summary>
/// <param name="ribbonItem"></param>
/// <param name="shortcuts"></param>
/// <returns></returns>
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));
}
/// <summary>
/// 是否具有快捷键
/// </summary>
/// <param name="ribbonItem"></param>
/// <returns></returns>
public static bool HasShortcut(this RibbonItem ribbonItem)
{
return new KeyboardShortcutService().HasRibbonItemShortcut(ribbonItem.Id);
}
/// <summary>
/// 移除快捷键
/// </summary>
/// <param name="ribbonItem"></param>
/// <returns></returns>
public static bool RemoveShortcut(this RibbonItem ribbonItem)
{
return new KeyboardShortcutService().RemoveRibbonItemShortcut(ribbonItem.Id);
}
}
}