标签式容器是一个停靠面板,它的子停靠面板被排列在标签页面中。 在标签式容器中,同一时刻仅可以显示一个子面板。 标签式容器可以包含常规 停靠面板 作为子面板。 通过代码, 分隔式容器 可以仅被停靠在标签式容器中。 下面的插图展示了一个典型的标签式容器:
创建和销毁标签式容器
要创建标签式容器,最终用户需要把某个面板停放在另一个面板的标题上。 指示该面板在目标面板内部可停靠位置的选择器必须变成标签页形状:
要通过代码创建标签式容器,可以使用 DockPanel.DockAsTab 方法。 请参阅 以程序方式停靠面板 文档来获得更多信息。
当容器面板中只包含两个面板、并且其中一个面板已经从容器中取消停靠时,容器面板被自动销毁。标签式容器对象
标签式容器是一种停靠面板,它的子面板被以标签页面显示。标签式容器由 DockPanel 类呈现。 可以使用索引器符号访问此容器中的子面板。 使用容器的 DockPanel.Count 属性来确定子面板的数目。 如果某个特定的面板属于一个容器,则可以使用面板的 DockPanel.ParentPanel 属性来返回此容器。
标签式容器中的当前活动子面板由容器的 DockPanel.ActiveChild 属性指定。 DockPanel.ActiveChildIndex 属性确定活动子面板在兄弟子面板间的位置。 在代码中这些属性可以用于人工激活特定的子面板。
由最终用户执行的停靠操作、或者通过代码,可以导致容器面板 (分隔式容器和标签式容器) 被动态创建和销毁。 当任何停靠面板 (包括分隔式容器和标签式容器) 被创建时, DockManager.RegisterDockPanel 事件发生。 可以接管该事件来定制新建的面板。 例如,可能需要设置所创建容器的标题,当它们被浮动时此标题被显示。 当任何停靠面板被销毁并从停靠管理器中删除时,DockManager.UnregisterDockPanel 事件发生。 例如, 可以使用此事件来释放 DockManager.RegisterDockPanel 事件期间分配的资源。
通过接管 DockManager.StartDocking 和 DockManager.Docking 事件,可以取消特定的停靠操作。例如,可以阻止最终用户取消停靠某个特定的容器面板,或者阻止某个面板被停靠到容器中,等等。 例如,可以阻止最终用户从容器面板中取消停靠某个面板,或者阻止某个面板被停靠到容器中,等等。
设置
要在标签式容器的标签内显示图像,则把一个图像列表指派到 停靠管理器 的 DockManager.Images 属性,并通过 DockPanel.ImageIndex 属性,把所需的图像索引号指派到特定的面板。
标签式容器内部的标签可以被放置在上边缘、左边缘、下边缘和右边缘。 在默认情况下,它们被显示在该容器的下边缘。 要修改标签的位置,则可以使用 DockPanel.TabsPosition 属性。 可以为标签式容器设置该属性,或者为用于创建标签式容器 (这是一个面板,当标签式容器被创建时另一个面板被停靠到其中) 的面板设置该属性。 在后一种情况下,新建的标签式容器的 TabsPosition 属性将使用面板的 TabsPosition 属性值进行初始化。
可以使用 DockPanel.TabsScroll 属性来激活标签导航按钮,这些按钮允许用户滚动标签。 当标签不适合于标签式容器的宽度 (如果标签被垂直显示时则为高度) 时,这些按钮将被显示。 类似于 DockPanel.TabsPosition 属性,可以为标签式容器、或者为用于创建标签式容器的面板设置 TabsScroll。
下面的插图展示了标签式容器的主要设置:
面板的多个外观设置都由 BarAndDockingController 的 BarAndDockingController.AppearancesDocking 属性确定。 例如,这些设置允许定制标签式容器中的活动标签和非活动标签、活动面板和非活动面板的标题,等等。
标签式容器的客户区不可视。 因此定制标签式容器的 DockPanel.Appearance 属性是不起作用的,因为该属性影响面板的客户区的外观与感觉。
停靠操作
最终用户可以使标签式容器浮动、把它停靠到其他面板中 (这样就形成了分隔式容器)、或者把它停靠到其他标签式容器中 (在这种情况下,子面板将被追加到目标标签式容器中)。
当标签式容器被停靠到主窗体中时,它的 自动隐藏功能 可以通过单击自动隐藏按钮 () 来激活。 要在代码中激活此功能,则应该把容器的 DockPanel.Visibility 属性设置为 DockVisibility.AutoHide。