前言
Revit 通过 API 将完整的 Ribbon 做了保留,同时这些菜单按钮也可以和相应的命令绑定。
内容
运行效果如下所示:
菜单特写:
Ribbon Sample 整体是 API 暴露出来的一个 RibbonPanel
,对应的接口:
namespace Autodesk.Revit.UI
{public class RibbonPanel{public bool Enabled { get; set; }public bool Visible { get; set; }public string Title { get; set; }public string Name { get; set; }public RibbonItem AddItem(RibbonItemData itemData);public void AddSeparator();public void AddSlideOut();public IList<RibbonItem> AddStackedItems(RibbonItemData item1, RibbonItemData item2, RibbonItemData item3);public IList<RibbonItem> AddStackedItems(RibbonItemData item1, RibbonItemData item2);public override bool Equals(object obj);public IList<RibbonItem> GetItems();}
}
这个 RibbonPanel
上的元素被称为 RibbonItem
,可以承载的类型如下,类似 QT 或者 WPF 这类 UI 框架,但肯定没它们强大丰富:
具体如何创建详见 SDK 代码,非常直白,通俗易懂。需要注意的一点,Ribbon 的创建必须是在 IExternalApplication::OnStartUp
。