前言
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
。