Autodesk.Revit.UI.IDockablePaneProvider
接口是一种实现插件扩展 Revit 用户界面以提供自定义可停靠面板的方法之一。通过实现该接口,插件可以向 Revit 添加自定义面板,并将其与主窗口中的其他窗格部分一起停靠。
该接口仅有一个方法,即 GetDockablePane
。该方法用于创建可停靠面板,将其与指定的 UIControl 或 Windows.Forms.Control 进行绑定,并设置其面板的一些其他属性。
IDockablePane GetDockablePane(UIControl control, string title, DockPosition position, Guid guid);
control
: 绑定到可停靠面板的 UI 控件或 WinForm 控件。title
: 可停靠面板的标题。position
: 可停靠面板在 Dockable Window 容器中的位置,可设置五种预定义的位置:Left
、Right
、Top
、Bottom
和 Floating
。guid
: 可停靠面板的唯一标识符。该方法返回一个 IDockablePane
对象,可以通过将其传递给 DockablePane.Show
方法来显示面板。
以下示例演示了如何实现 IDockablePaneProvider
接口,创建一个可停靠面板,并将其添加到 Revit 用户界面中的 Dockable Window 容器中。
public class MyDockablePaneProvider : IDockablePaneProvider
{
public IDockablePane GetDockablePane(UIControl control, string title, DockPosition position, Guid guid)
{
var pane = new DockablePane(Guid.NewGuid(), title);
pane.SetContent(control);
pane.SetPosition(position);
return pane;
}
}
在插件启动时,可以通过以下代码将该可停靠面板添加到 Dockable Window 容器中:
var myControl = new MyCustomControl();
var myTitle = "My Custom Panel";
var myPosition = DockPosition.Right;
var myGuid = new Guid("9acfc360-0a7b-46b6-ae88-24980e6ee1c6");
var myProvider = new MyDockablePaneProvider();
var myPane = myProvider.GetDockablePane(myControl, myTitle, myPosition, myGuid);
DockablePaneProvider.Instance.Register(myPane);
在此示例中,我们创建了一个名为 MyCustomControl
的自定义控件,并在 GetDockablePane
方法中使用它来创建一个可停靠面板。然后,我们将可停靠面板添加到 Dockable Window 容器中,这样它就可以像其他面板一样被用户访问。