HypernovaDesktop Components · docs
Binarymission
WinFormsPower Tab Strip › BinaryPowerTabStrip

BinaryPowerTabStrip

class.NET 6 / 8 / 10.NET Framework 4.8Binarymission.WinForms.Controls.TabControls

A customizable tab strip control for WindowsForms .NET.

public class BinaryPowerTabStrip : ContainerControl

Inherits from / implements: ContainerControl

Members at a glance

BinaryPowerTabStripInitializes a new instance of the BinaryPowerTabStrip class.
BorderStyleAlways None. The strip draws its own border, so the inherited border style is hidden to keep the designer from offering a setting that would have no effect.
ControlsThe child controls. Hidden from the base so that the designer serializes the tab pages through Items rather than writing the raw control collection.
CustomEndColorGets or sets the custom end color for drawing the tab pages.
CustomStartColorGets or sets the custom start color for drawing the tab pages.
DragDropIndicatorColorGets or sets the colour of the bar that shows where a dragged header will land.
DrawBorderAroundTabStripGets or sets a value indicating whether to draw border around the tab strip.
DrawTabPageOnTopOfEachOtherGets or sets a value indicating whether to draw tab page on top of each other.
EmptySpaceLengthBeforeTheFirstTabPageGets or sets the empty space length before the first tab page.
EnableAutomaticUpdateOfTabPagesHeaderSizeGets or sets a value indicating whether to enable automatic update of tab pages header size whenever the control's font or tab page's image is set or changed or removed.
EnableControlledLayoutRenderingGets or sets whether to layout / adjust perform sizing of itself and the child tab page's control in a controlled / optimised manner.
EnableDragAndDropOfTabPagesGets or sets a value indicating whether to enable drag and drop of tab pages.
EnableTabPageLevelCloseButtonRenderingGets or sets a value indicating whether to enable tab page level close button rendering.
ExtendedWindowsXPRenderingFirstColorGets or sets the custom first color to be used for rendering the tab page header border for the currently selected tab page.
ExtendedWindowsXPRenderingSecondColorGets or sets the custom second color to be used for rendering the tab page header border for the currently selected tab page.
GapBetweenTabPagesGets or sets the gap between tab pages.
HeaderFontGets or sets the font to be used for displaying the tab page header text, when the page is not currently selected.
HeaderTextCloseButtonExtraGapGets or sets the header text and page header close button gap.
IsBackgroundTransparentGets or sets whether the control supports rendering its background with full transparency.
KeepShowingTooltipEvenWhenMousePointerIsMovingGets or sets whether the tooltip will be displayed on the tab page header wven when the mouse pointer is moving on the tab page header area.
NewlyAddedPagesAreLocatedAtLeftCornerGets or sets whether the newly added page objects are located/placed visually in the left most corner of the tabstrip control.
OverflowMenuGlyphDrawnInEnlargedModeGets or sets whether to draw the Overflow menu glyph in an enlarged mode.
OverflowMenuGlyphSizeGets or sets the OverflowMenu's glyph size.
OverflowMenuLabelFontGets or sets the Overflow menu Label font.
OverflowMenuLabelForeColorGets or sets the Overflow menu Label forecolor.
OverflowMenuLabelMarginGets or sets the Overflow menu Label text's margin.
OverflowMenuLabelTextGets or sets the Overflow menu Label text.
OverflowMenuShouldRenderTitleLabelGets or sets whether the Overflow menu should render a title label for the menu items displayed.
PagesCurrentlyDisplayedInActiveTabControlViewGets a list of Tab pages currently displayed within the view window of the PowerTabStrip Control instance.
PowerTabStripElementsRendererGets or sets the instance of a custom overflow menu item custom renderer to use when rendering the overflow menu object.
PreventInvalidationGets or sets whether to avoid invalidating the control at a given point in time.
RenderFullTextForTabPageHeaderGets or sets whether to render the tab page's headr text in full or to render within the set maximum page header size.
ReserveCloseButtonSpaceOnAllTabPagesGets or sets whether space for a close button is reserved on every tab page header, or only on those that actually draw one.
SelectedPageHeaderTextIsRenderedBoldThis property has been deprecated from build version 5.1.260. Please use the SelectedTabPageHeaderFont property instead to apply more rich font object to render the selected state of a tab page header text.
SelectedTabPageGets or sets the currently selected tab page.
SelectedTabPageHeaderFontGets or sets the font to be used for displaying the tab page header text, when the page is currently selected.
ShouldAutoSizeTabsGets or sets a value indicating whether the control should set its tab page header size automatically with same (max) size.
ShouldDrawTabPageHeaderInMultiLinesGets or sets a value indicating whether the control should draw tab page header in multi lines.
ShouldEnableControlDiagnosticsReportingGets or sets whether the Control instance should be capturing internal diagnostics for reporting.
ShouldReportCurrentlyDisplayedTabPagesListGets or sets whether to enable reporting the currently displayed tab pages list.
ShouldRespectTabPageSetupOrderUponSelectedPageChangeGets or sets whether to respect the tab page setup order when the user changes the currently selected tab page.
ShouldUpdateUponParentMoveGets or sets a value indicating whether the control should update upon parent move.
ShouldUpdateUponParentResizeGets or sets a value indicating whether the control should update upon parent resize.
ShowCloseWindowButtonGets or sets a value indicating whether to show close window button.
ShowDragDropIndicatorGets or sets whether a header being dragged shows where it will land: a bar between two headers, with a caret at each end, in DragDropIndicatorColor.
ShowOverflowMenuGlyphGets or sets a value indicating whether to show overflow menu.
ShowToolTipGets or sets whether to enable showing tooltip on this control's tab page headers.
SizeThe size of the strip. Hidden from the base so that setting it can re-lay the tabs, which a plain assignment to the inherited property would not do.
TabBottomOrientationCloseButtonPositionGets or sets the close button position.
TabHeaderStringFormatGets or sets the tab header string format.
TabPageBorderColorGets or sets the color of the tab page border.
TabPageCloseButtonMouseEnterColorGets or sets the color of the tab page close button when mouse enters the close button inside the tab page.
TabPageCloseButtonRectangleBorderColorGets or sets the color of the tab page close button rectangle border.
TabPageCloseButtonRectangleFillColorGets or sets the fill color of the tab page close button rectangle.
TabPageCurrentSelectionIndicatorEndColorGets or sets the end color for the tab page current selection indicator.
TabPageCurrentSelectionIndicatorStartColorGets or sets the start color for the tab page current selection indicator.
TabPageHeaderDrawingGradientOrientationGets or sets the tab page header drawing gradient orientation.
TabPageHeaderForeColorGets or sets the forecolor of the tab page header.
TabPageHeaderHeightGets or sets the height of the tab page header.
TabPageHeaderHorizontalPaddingGets or sets the horizontal padding, in logical (96 DPI) pixels, added to each tab page header on top of the width of its text.
TabPageHeaderShowsSideBarGets or sets a value indicating whether the tab page header shows side bar.
TabPageHeaderTextFontOverridesControlDefaultGets or sets whether the font setting for rendering the tab page header text is determined always by the value set in the HeaderTextFont for each of the pages in this control.
TabPageHeaderWidthGets or sets the maximum width for the control's tab page's header area.
TabPageSideBarFillColorGets or sets the fill color of the tab page side bar.
TabPagesGets the tab pages in this control instance's collection.
TabPagesCloseButtonColorGets or sets the color of the tab pages close button.
TabPagesHaveGapBetweenThemGets or sets a value indicating whether the tab pages have gap between them.
TabPagesOverFlowMenuBackColorGets or sets the background colour of the tab pages overflow MENU.
TabPagesOverFlowMenuBorderColorGets or sets the border colour of the tab pages overflow menu.
TabPagesOverFlowMenuDropDownColorGets or sets the color of the tab pages overflow menu drop down.
TabPagesOverFlowMenuFontGets or sets the font of the tab pages overflow menu.
TabPagesOverFlowMenuForeColorGets or sets the text colour of the tab pages overflow menu.
TabPagesOverFlowMenuGlyphActiveRectangleBorderColorGets or sets the color of the tab pages over flow menu glyph active rectangle border.
TabPagesOverFlowMenuGlyphActiveRectangleFillColorGets or sets the fill color of the tab pages over flow menu glyph active rectangle fill.
TabPagesOverFlowMenuHighlightColorGets or sets the colour drawn behind the item the pointer is over in the overflow menu.
TabPagesOverFlowMenuHighlightTextColorGets or sets the text colour of the item the pointer is over in the overflow menu.
TabPagesOverFlowMenuShowImageMarginGets or sets whether the overflow menu reserves the left-hand image gutter.
TabPagesOverflowCalculationStrategyGets or sets the tab pages overflow calculation strategy.
TabPagesRenderingLocationGets or sets the location where the tab pages are to be rendered.
TabRenderingStyleGets or sets the tab rendering style.
TabsOverflowModeGets or sets the tabs overflow mode.
ThemeBorderColorCanBeOverriddenGets or sets a value indicating whether the theme border color can be overridden with a custom border color..
ToolTipConfigurationEnables configuring the tooltip display aspect for the tab page control.
UseLegacyMultiLineRowPackingGets or sets whether tab header rows in MultiLine are laid out using the legacy index-based algorithm rather than the measured widths of the headers.
UseTabCurrentSelectionIndicatorColorGets or sets a value indicating whether to use tab current selection indicator color.
AddTabAdds an instance of a tab page into the tab pages collection.
AddTabAdds an instance of a tab page into the tab pages collection, and selects the page if asked to, and positions the page in the desired left/right corner.
AddTabAdds an instance of a tab page into the tab pages collection, and selects the page if asked to, and positions the page in the desired left/right corner.
DisposeReleases the resources held by this BinaryPowerTabStrip.
GetDisabledImageFromNormalProduces the grayed-out form of an image, for drawing a tab or button that is disabled.
GetTabPageByPointGets the tab page by a given location point.
HitTestReturns the Hit test information.
OnCreateControlRe-evaluates the ancestor wiring when the control is created as part of its parent's creation.
OnDoubleClickRaises the DoubleClick event.
OnFontChangedRaises the FontChanged event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.
OnHandleCreatedRaises the HandleCreated event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.
OnHandleDestroyedRaises the HandleDestroyed event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.
OnKeyDownRaises the KeyDown event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.
OnLayoutImplements custom overrided when layoing out the Control.
OnMouseCaptureChangedRaises the MouseCaptureChanged event, and abandons a header drag whose capture was taken away while the button is still down - a window activated by the keyboard, or a dialog - so no drop happens later and no bar is left behind.
OnMouseDownRaises the MouseDown event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.
OnMouseEnterRaises the MouseEnter event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.
OnMouseHoverRaises the MouseHover event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.
OnMouseLeaveRaises the MouseLeave event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.
OnMouseMoveRaises the MouseMove event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.
OnMouseUpRaises the MouseUp event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.
OnPaintRaises the Paint event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.
OnParentChangedRaises the ParentChanged event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.
OnResizeRaises the Resize event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.
OnSizeChangedRaises the SizeChanged event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.
OnSystemColorsChangedRaises the SystemColorsChanged event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.
OnTabStyleRenderingStyleChangedRaises the TabStyleRenderingStyleChanged event.
RearrangeTabPageLocationRearranges the desired tab page to a different index in the tab control's collection of tab pages.
RefreshLayoutRequests a layout update refresh.
RemoveTabRemoves an instance of a tab page from the tab pages collection.
ResetExternalClears the transient interaction state - the sizing, hover and menu tracking a gesture leaves behind - so the strip can be driven from outside without picking up state left over from the last gesture.
ResetInvalidateEnables refreshing the rendered artifacts.
SetBoundsCoreSets the bounds of this control, applying the constraints it imposes on its own size.
ShouldSerializeFontTells the designer whether Font is worth writing into the generated code, which is how a property is kept out of the designer file when it still holds its default.
ShouldSerializeItemsTells the designer whether Items is worth writing into the generated code, which is how a property is kept out of the designer file when it still holds its default.
ShouldSerializeSelectedItemTells the designer whether SelectedItem is worth writing into the generated code, which is how a property is kept out of the designer file when it still holds its default.
TabElementsLayoutChangingAn event that is raised just before the Tab Control instance performs refreshing its elements layout.
TabPageClosedOccurs when a tab page is closed.
TabPageClosingOccurs when a tab page is closing.
TabPageDoubleClickedThis event is raised when the user double-clicks on the tab page's header area.
TabPageSelectionChangedOccurs when a tab page selection is changed.
TabStyleRenderingStyleChangedOccurs when the tab style rendering style is changed.

Constructors

BinaryPowerTabStrip

public BinaryPowerTabStrip()

Initializes a new instance of the BinaryPowerTabStrip class.

Properties

BorderStyle

public new BorderStyle BorderStyle

Always None. The strip draws its own border, so the inherited border style is hidden to keep the designer from offering a setting that would have no effect.

Controls

public new ControlCollection Controls

The child controls. Hidden from the base so that the designer serializes the tab pages through Items rather than writing the raw control collection.

CustomEndColor

public Color CustomEndColor

Gets or sets the custom end color for drawing the tab pages.

Note that you can set a custom end color for each tab page, by setting the appropriate property on the tab page instance.

CustomStartColor

public Color CustomStartColor

Gets or sets the custom start color for drawing the tab pages.

Note that you can set a custom start color for each tab page, by setting the appropriate property on the tab page instance.

DragDropIndicatorColor

public Color DragDropIndicatorColor

Gets or sets the colour of the bar that shows where a dragged header will land.

The default is the system highlight colour (HANDOVER 3ba).

DrawBorderAroundTabStrip

public bool DrawBorderAroundTabStrip

Gets or sets a value indicating whether to draw border around the tab strip.

DrawTabPageOnTopOfEachOther

public bool DrawTabPageOnTopOfEachOther

Gets or sets a value indicating whether to draw tab page on top of each other.

EmptySpaceLengthBeforeTheFirstTabPage

public int EmptySpaceLengthBeforeTheFirstTabPage

Gets or sets the empty space length before the first tab page.

EnableAutomaticUpdateOfTabPagesHeaderSize

public bool EnableAutomaticUpdateOfTabPagesHeaderSize

Gets or sets a value indicating whether to enable automatic update of tab pages header size whenever the control's font or tab page's image is set or changed or removed.

EnableControlledLayoutRendering

public bool EnableControlledLayoutRendering

Gets or sets whether to layout / adjust perform sizing of itself and the child tab page's control in a controlled / optimised manner.

EnableDragAndDropOfTabPages

public bool EnableDragAndDropOfTabPages

Gets or sets a value indicating whether to enable drag and drop of tab pages.

EnableTabPageLevelCloseButtonRendering

public bool EnableTabPageLevelCloseButtonRendering

Gets or sets a value indicating whether to enable tab page level close button rendering.

The control already supports rendering the tab page close button at the tab control level - i.e. the close button that is seen at the right side side corner.
If you want the control to render the close button at the tab page level, set this property to true.

ExtendedWindowsXPRenderingFirstColor

public Color ExtendedWindowsXPRenderingFirstColor

Gets or sets the custom first color to be used for rendering the tab page header border for the currently selected tab page.

ExtendedWindowsXPRenderingSecondColor

public Color ExtendedWindowsXPRenderingSecondColor

Gets or sets the custom second color to be used for rendering the tab page header border for the currently selected tab page.

GapBetweenTabPages

public int GapBetweenTabPages

Gets or sets the gap between tab pages.

HeaderFont

public Font HeaderFont

Gets or sets the font to be used for displaying the tab page header text, when the page is not currently selected.

HeaderTextCloseButtonExtraGap

public int HeaderTextCloseButtonExtraGap

Gets or sets the header text and page header close button gap.

IsBackgroundTransparent

public bool IsBackgroundTransparent

Gets or sets whether the control supports rendering its background with full transparency.

KeepShowingTooltipEvenWhenMousePointerIsMoving

public bool KeepShowingTooltipEvenWhenMousePointerIsMoving

Gets or sets whether the tooltip will be displayed on the tab page header wven when the mouse pointer is moving on the tab page header area.

If this property is set to false, the tooltip will be shown, but when the mouse pointer moves to another tab page header, it will show the tooltip only if the user moves the pointer to outside of the tabcontrol area or moves the pointer into another control's area and brings it back into the tab page header area.

NewlyAddedPagesAreLocatedAtLeftCorner

public bool NewlyAddedPagesAreLocatedAtLeftCorner

Gets or sets whether the newly added page objects are located/placed visually in the left most corner of the tabstrip control.

The default value is false. this means newly added page objects are placed visually in the right hand side corner of the tabstrip control.

OverflowMenuGlyphDrawnInEnlargedMode

public bool OverflowMenuGlyphDrawnInEnlargedMode

Gets or sets whether to draw the Overflow menu glyph in an enlarged mode.

Note that if this property is set to true, the TabControl-level CloseButton feature option will be disabled. That said, you can still continue to have the TabPage-level CloseButton feature continue to be available if you choose to have it.

OverflowMenuGlyphSize

public Size OverflowMenuGlyphSize

Gets or sets the OverflowMenu's glyph size.

You can take control and custom size the glyph for rendering. However keep in mind that the Size specified for this property will need to be within the range of 16 to 32 (both inclusive) for both Width and Height part. If not the glyph size will be rendered at its defaults of 16 x 16.

OverflowMenuLabelFont

public Font OverflowMenuLabelFont

Gets or sets the Overflow menu Label font.

OverflowMenuLabelForeColor

public Color OverflowMenuLabelForeColor

Gets or sets the Overflow menu Label forecolor.

OverflowMenuLabelMargin

public Padding OverflowMenuLabelMargin

Gets or sets the Overflow menu Label text's margin.

OverflowMenuLabelText

public string OverflowMenuLabelText

Gets or sets the Overflow menu Label text.

OverflowMenuShouldRenderTitleLabel

public bool OverflowMenuShouldRenderTitleLabel

Gets or sets whether the Overflow menu should render a title label for the menu items displayed.

PagesCurrentlyDisplayedInActiveTabControlView

public IEnumerable<CurrentlyDisplayedTabPagesListReport> PagesCurrentlyDisplayedInActiveTabControlView

Gets a list of Tab pages currently displayed within the view window of the PowerTabStrip Control instance.

PowerTabStripElementsRenderer

public IPowerTabStripElementsRenderer PowerTabStripElementsRenderer

Gets or sets the instance of a custom overflow menu item custom renderer to use when rendering the overflow menu object.

In order for this feature to apply, you will need to ensure to set the following properties in the Control:
1. OverflowMenuGlyphDrawnInEnlargedMode to true.
2. OverflowMenuGlyphSize to a desired size based on what you will be custom drawing using your custom renderer implementation.
3. TabPageHeaderHeight to a reasonable height value vis-a-vis the custom drawn menu host visual (say, at least the height value in the desired OverflowMenuGlyphSize).

PreventInvalidation

public bool PreventInvalidation

Gets or sets whether to avoid invalidating the control at a given point in time.

When updating the tab page's Text property, the control invalidates itself. This can cause a small performance overhead.
If you want to avoid this performance overhead, especially in scenarios where you are updating/setting the Text property of the tab pages in the control, you would want to set this property to True before begining the foreach / for loop in which you may be updating the Text property, and then re-set this property's value to False .

RenderFullTextForTabPageHeader

public bool RenderFullTextForTabPageHeader

Gets or sets whether to render the tab page's headr text in full or to render within the set maximum page header size.

The default value is true. If you have set a maximum size for the tab page header text area, and you set this property value to false, then the control will render the text within the available set space, and will onlyu render the text so as to accomodate few characters from the begenining of the text and end of the text.
When setting this property to true, ensure to set the properties TabPageMaximumWidth and TabPageHeaderHeight to accomodate the maximum sizeed tab page text.

ReserveCloseButtonSpaceOnAllTabPages

public bool ReserveCloseButtonSpaceOnAllTabPages

Gets or sets whether space for a close button is reserved on every tab page header, or only on those that actually draw one.

When EnableTabPageLevelCloseButtonRendering is on, 20 pixels are reserved on each header for the close button. A button is only ever drawn on a page whose ShouldRenderCloseButton is true, so a control that enables the feature but never sets it on any page pays 20 pixels per tab for nothing. Set this to false to reserve the space only where a button is genuinely drawn. The default is true , preserving previous behaviour.

SelectedPageHeaderTextIsRenderedBold

public bool SelectedPageHeaderTextIsRenderedBold

This property has been deprecated from build version 5.1.260. Please use the SelectedTabPageHeaderFont property instead to apply more rich font object to render the selected state of a tab page header text.

SelectedTabPage

public BinaryPowerTabPage SelectedTabPage

Gets or sets the currently selected tab page.

SelectedTabPageHeaderFont

public Font SelectedTabPageHeaderFont

Gets or sets the font to be used for displaying the tab page header text, when the page is currently selected.

ShouldAutoSizeTabs

public bool ShouldAutoSizeTabs

Gets or sets a value indicating whether the control should set its tab page header size automatically with same (max) size.

ShouldDrawTabPageHeaderInMultiLines

public bool ShouldDrawTabPageHeaderInMultiLines

Gets or sets a value indicating whether the control should draw tab page header in multi lines.

ShouldEnableControlDiagnosticsReporting

public bool ShouldEnableControlDiagnosticsReporting

Gets or sets whether the Control instance should be capturing internal diagnostics for reporting.

Set the property to true if the Control itself should report DEBUG diagnostics in the DEBUG output view, or if set it to false if the Application will drive the reporting iself.

ShouldReportCurrentlyDisplayedTabPagesList

public bool ShouldReportCurrentlyDisplayedTabPagesList

Gets or sets whether to enable reporting the currently displayed tab pages list.

ShouldRespectTabPageSetupOrderUponSelectedPageChange

public bool ShouldRespectTabPageSetupOrderUponSelectedPageChange

Gets or sets whether to respect the tab page setup order when the user changes the currently selected tab page.

When this property is set to true (false being the default), when the user select a tab page, the following behaviour will be seen:
1. The selected page (if it was not already shown in the TabControl) will be shown as the last page in the view,
2. The Control will still show only the maximum number of Tab pages that can be shown at any one time in the TabControl, and
3. The Control will also retain/preserve/respect the application defined Tab pages ordering.

ShouldUpdateUponParentMove

public bool ShouldUpdateUponParentMove

Gets or sets a value indicating whether the control should update upon parent move.

ShouldUpdateUponParentResize

public bool ShouldUpdateUponParentResize

Gets or sets a value indicating whether the control should update upon parent resize.

ShowCloseWindowButton

public bool ShowCloseWindowButton

Gets or sets a value indicating whether to show close window button.

ShowDragDropIndicator

public bool ShowDragDropIndicator

Gets or sets whether a header being dragged shows where it will land: a bar between two headers, with a caret at each end, in DragDropIndicatorColor.

Applies while EnableDragAndDropOfTabPages is on. The bar is shown only where a drop would move the page; over the page's own place, or outside the headers, there is none, and outside the headers the pointer shows that a drop there does nothing. The default is true (HANDOVER 3ba).

ShowOverflowMenuGlyph

public bool ShowOverflowMenuGlyph

Gets or sets a value indicating whether to show overflow menu.

ShowToolTip

public bool ShowToolTip

Gets or sets whether to enable showing tooltip on this control's tab page headers.

Size

public new Size Size

The size of the strip. Hidden from the base so that setting it can re-lay the tabs, which a plain assignment to the inherited property would not do.

TabBottomOrientationCloseButtonPosition

public CloseButtonPosition TabBottomOrientationCloseButtonPosition

Gets or sets the close button position.

Value. The close button position.

TabHeaderStringFormat

public StringFormat TabHeaderStringFormat

Gets or sets the tab header string format.

TabPageBorderColor

public Color TabPageBorderColor

Gets or sets the color of the tab page border.

TabPageCloseButtonMouseEnterColor

public Color TabPageCloseButtonMouseEnterColor

Gets or sets the color of the tab page close button when mouse enters the close button inside the tab page.

Note that this affects only the close button located inside the tab pages. Also refer to the property EnableTabPageLevelCloseButtonRendering.

TabPageCloseButtonRectangleBorderColor

public Color TabPageCloseButtonRectangleBorderColor

Gets or sets the color of the tab page close button rectangle border.

TabPageCloseButtonRectangleFillColor

public Color TabPageCloseButtonRectangleFillColor

Gets or sets the fill color of the tab page close button rectangle.

TabPageCurrentSelectionIndicatorEndColor

public Color TabPageCurrentSelectionIndicatorEndColor

Gets or sets the end color for the tab page current selection indicator.

TabPageCurrentSelectionIndicatorStartColor

public Color TabPageCurrentSelectionIndicatorStartColor

Gets or sets the start color for the tab page current selection indicator.

TabPageHeaderDrawingGradientOrientation

public LinearGradientMode TabPageHeaderDrawingGradientOrientation

Gets or sets the tab page header drawing gradient orientation.

TabPageHeaderForeColor

public Color TabPageHeaderForeColor

Gets or sets the forecolor of the tab page header.

TabPageHeaderHeight

public int TabPageHeaderHeight

Gets or sets the height of the tab page header.

TabPageHeaderHorizontalPadding

public int TabPageHeaderHorizontalPadding

Gets or sets the horizontal padding, in logical (96 DPI) pixels, added to each tab page header on top of the width of its text.

Value. The padding in logical pixels, or -1 to use TabPageHeaderHeight.

Set this to trade white space for tab count. Lowering it makes every tab narrower without altering the font, so more headers fit before the overflow menu is needed. The default of -1 means "behave exactly as previous versions did", which is to use TabPageHeaderHeight as the horizontal padding. That coupling of a vertical measurement to a horizontal one was never intentional, but it is long-standing behaviour, so it remains the default and no existing layout changes. Note that EnableAutomaticUpdateOfTabPagesHeaderSize sets the header height to the text height plus 16, so leaving both at their defaults means each tab carries roughly the text height plus 16 pixels of padding. Setting this property breaks that link. Applies when ShouldAutoSizeTabs is false . When tabs are auto-sized they all take the width of the widest, and HeaderTextCloseButtonExtraGap is the corresponding dial.

TabPageHeaderShowsSideBar

public bool TabPageHeaderShowsSideBar

Gets or sets a value indicating whether the tab page header shows side bar.

This property is currently supported only if the TabPagesRenderingLocation property is set to Top .
A future release will support the side bar rendering for the Botton location tab page rendering style as well.

TabPageHeaderTextFontOverridesControlDefault

public bool TabPageHeaderTextFontOverridesControlDefault

Gets or sets whether the font setting for rendering the tab page header text is determined always by the value set in the HeaderTextFont for each of the pages in this control.

The default value is false.
Typically the control's behavior is that when a tab page is selected, the header text is rendered using Bold font.
When setting this property to true, the control will not render the selected tab page's text in Bold font.

TabPageHeaderWidth

public int TabPageHeaderWidth

Gets or sets the maximum width for the control's tab page's header area.

When you set a value for this property, this value / size will be used to render the text in the tab page's header area based on the value set in the property RenderFullTextForTabPageHeader.

TabPageSideBarFillColor

public Color TabPageSideBarFillColor

Gets or sets the fill color of the tab page side bar.

TabPages

public BinaryPowerTabPageCollection TabPages

Gets the tab pages in this control instance's collection.

TabPagesCloseButtonColor

public Color TabPagesCloseButtonColor

Gets or sets the color of the tab pages close button.

TabPagesHaveGapBetweenThem

public bool TabPagesHaveGapBetweenThem

Gets or sets a value indicating whether the tab pages have gap between them.

TabPagesOverFlowMenuBackColor

public Color TabPagesOverFlowMenuBackColor

Gets or sets the background colour of the tab pages overflow MENU.

TabPagesOverFlowMenuBorderColor

public Color TabPagesOverFlowMenuBorderColor

Gets or sets the border colour of the tab pages overflow menu.

TabPagesOverFlowMenuDropDownColor

public Color TabPagesOverFlowMenuDropDownColor

Gets or sets the color of the tab pages overflow menu drop down.

This is the GLYPH - the little chevron the menu drops from - and not the menu itself. The menu's own appearance is TabPagesOverFlowMenuBackColor and the five properties below it. HANDOVER.md 3ae.

TabPagesOverFlowMenuFont

public Font TabPagesOverFlowMenuFont

Gets or sets the font of the tab pages overflow menu.

Null, the default, leaves the menu on the system menu font.

TabPagesOverFlowMenuForeColor

public Color TabPagesOverFlowMenuForeColor

Gets or sets the text colour of the tab pages overflow menu.

TabPagesOverFlowMenuGlyphActiveRectangleBorderColor

public Color TabPagesOverFlowMenuGlyphActiveRectangleBorderColor

Gets or sets the color of the tab pages over flow menu glyph active rectangle border.

TabPagesOverFlowMenuGlyphActiveRectangleFillColor

public Color TabPagesOverFlowMenuGlyphActiveRectangleFillColor

Gets or sets the fill color of the tab pages over flow menu glyph active rectangle fill.

TabPagesOverFlowMenuHighlightColor

public Color TabPagesOverFlowMenuHighlightColor

Gets or sets the colour drawn behind the item the pointer is over in the overflow menu.

TabPagesOverFlowMenuHighlightTextColor

public Color TabPagesOverFlowMenuHighlightTextColor

Gets or sets the text colour of the item the pointer is over in the overflow menu.

TabPagesOverFlowMenuShowImageMargin

public bool TabPagesOverFlowMenuShowImageMargin

Gets or sets whether the overflow menu reserves the left-hand image gutter.

True, the default, is what a Windows menu does and what this control has always shown. False closes up the grey strip down the left, which is most of what makes a themed menu look themed - set it only if the tab pages carry no images.

TabPagesOverflowCalculationStrategy

public TabPagesOverflowCalculationStrategy TabPagesOverflowCalculationStrategy

Gets or sets the tab pages overflow calculation strategy.

TabPagesRenderingLocation

public TabPagesRenderingLocation TabPagesRenderingLocation

Gets or sets the location where the tab pages are to be rendered.

Refer to the supported rendering locations.

TabRenderingStyle

public RenderingStyle TabRenderingStyle

Gets or sets the tab rendering style.

TabsOverflowMode

public OverflowMode TabsOverflowMode

Gets or sets the tabs overflow mode.

ThemeBorderColorCanBeOverridden

public bool ThemeBorderColorCanBeOverridden

Gets or sets a value indicating whether the theme border color can be overridden with a custom border color..

ToolTipConfiguration

public ToolTipConfiguration ToolTipConfiguration

Enables configuring the tooltip display aspect for the tab page control.

UseLegacyMultiLineRowPacking

public bool UseLegacyMultiLineRowPacking

Gets or sets whether tab header rows in MultiLine are laid out using the legacy index-based algorithm rather than the measured widths of the headers.

The default of false packs each row using the width each header is actually painted at, so a row holds as many tabs as genuinely fit. Setting this to true restores the previous behaviour, which assumed every header occupied TabPageHeaderWidth pixels and so tended to wrap earlier than necessary. It exists only for callers that depend on that older layout.

UseTabCurrentSelectionIndicatorColor

public bool UseTabCurrentSelectionIndicatorColor

Gets or sets a value indicating whether to use tab current selection indicator color.

Methods

AddTab

public void AddTab(BinaryPowerTabPage tabPage)

Adds an instance of a tab page into the tab pages collection.

AddTab

public void AddTab(BinaryPowerTabPage tabPage, bool selectThisTabPageafterAdd)

Adds an instance of a tab page into the tab pages collection, and selects the page if asked to, and positions the page in the desired left/right corner.

AddTab

public void AddTab(BinaryPowerTabPage tabPage, bool selectThisTabPageafterAdd, bool positionThisNewPageInTheLeftHandCorner)

Adds an instance of a tab page into the tab pages collection, and selects the page if asked to, and positions the page in the desired left/right corner.

Dispose

protected override void Dispose(bool disposing)

Releases the resources held by this BinaryPowerTabStrip.

disposing
true when called from Dispose; false when called from the finalizer.

GetDisabledImageFromNormal

public static Bitmap GetDisabledImageFromNormal(Bitmap normalImage)

Produces the grayed-out form of an image, for drawing a tab or button that is disabled.

normalImage
The image as it appears when enabled.

Returns. A new bitmap; the original is not modified.

GetTabPageByPoint

public BinaryPowerTabPage GetTabPageByPoint(Point pt)

Gets the tab page by a given location point.

HitTest

public HitTestArea HitTest(Point pt)

Returns the Hit test information.

OnCreateControl

protected override void OnCreateControl()

Re-evaluates the ancestor wiring when the control is created as part of its parent's creation.

For a control the designer parents up front this hook does see a complete ancestry. For the nested case that prompted this work it does not - Control.Created is raised off the back of the early handle creation, while the control is still unparented. Kept because it is the right hook for controls added to an already-built tree at run time, and it is free: AttachAncestorHandlers is idempotent.

OnDoubleClick

protected override void OnDoubleClick(EventArgs e)

Raises the DoubleClick event.

e
An EventArgs that contains the event data.
If you are looking to track the double-click event on the tab page, please refer to the TabPageDoubleClicked event.

OnFontChanged

protected override void OnFontChanged(EventArgs e)

Raises the FontChanged event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.

e
The data for the event.

OnHandleCreated

protected override void OnHandleCreated(EventArgs e)

Raises the HandleCreated event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.

e
The data for the event.

OnHandleDestroyed

protected override void OnHandleDestroyed(EventArgs e)

Raises the HandleDestroyed event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.

e
The data for the event.

OnKeyDown

protected override void OnKeyDown(KeyEventArgs e)

Raises the KeyDown event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.

e
The data for the event.

OnLayout

protected override void OnLayout(LayoutEventArgs e)

Implements custom overrided when layoing out the Control.

e

OnMouseCaptureChanged

protected override void OnMouseCaptureChanged(EventArgs e)

Raises the MouseCaptureChanged event, and abandons a header drag whose capture was taken away while the button is still down - a window activated by the keyboard, or a dialog - so no drop happens later and no bar is left behind.

e
The data for the event.

OnMouseDown

protected override void OnMouseDown(MouseEventArgs e)

Raises the MouseDown event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.

e
The data for the event.

OnMouseEnter

protected override void OnMouseEnter(EventArgs e)

Raises the MouseEnter event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.

e
The data for the event.

OnMouseHover

protected override void OnMouseHover(EventArgs e)

Raises the MouseHover event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.

e
The data for the event.

OnMouseLeave

protected override void OnMouseLeave(EventArgs e)

Raises the MouseLeave event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.

e
The data for the event.

OnMouseMove

protected override void OnMouseMove(MouseEventArgs e)

Raises the MouseMove event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.

e
The data for the event.

OnMouseUp

protected override void OnMouseUp(MouseEventArgs e)

Raises the MouseUp event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.

e
The data for the event.

OnPaint

protected override void OnPaint(PaintEventArgs e)

Raises the Paint event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.

e
The data for the event.

OnParentChanged

protected override void OnParentChanged(EventArgs e)

Raises the ParentChanged event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.

e
The data for the event.

OnResize

protected override void OnResize(EventArgs e)

Raises the Resize event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.

e
The data for the event.

OnSizeChanged

protected override void OnSizeChanged(EventArgs e)

Raises the SizeChanged event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.

e
The data for the event.

OnSystemColorsChanged

protected override void OnSystemColorsChanged(EventArgs e)

Raises the SystemColorsChanged event. BinaryPowerTabStrip overrides it so the control's own handling runs alongside the base behavior.

e
The data for the event.

OnTabStyleRenderingStyleChanged

protected virtual void OnTabStyleRenderingStyleChanged(EventArgs e)

Raises the TabStyleRenderingStyleChanged event.

e
The data for the event.

RearrangeTabPageLocation

public void RearrangeTabPageLocation(BinaryPowerTabPage pageToMove, int destinationIndexToMoveTheDesiredTabPageTo)

Rearranges the desired tab page to a different index in the tab control's collection of tab pages.

pageToMove
The page to move.
destinationIndexToMoveTheDesiredTabPageTo
The destination index to move the desired tab page to.

RefreshLayout

public void RefreshLayout()

Requests a layout update refresh.

RemoveTab

public void RemoveTab(BinaryPowerTabPage tabPage)

Removes an instance of a tab page from the tab pages collection.

ResetExternal

public void ResetExternal()

Clears the transient interaction state - the sizing, hover and menu tracking a gesture leaves behind - so the strip can be driven from outside without picking up state left over from the last gesture.

ResetInvalidate

public void ResetInvalidate()

Enables refreshing the rendered artifacts.

SetBoundsCore

protected override void SetBoundsCore(int x, int y, int width, int height, BoundsSpecified specified)

Sets the bounds of this control, applying the constraints it imposes on its own size.

ShouldSerializeFont

public bool ShouldSerializeFont()

Tells the designer whether Font is worth writing into the generated code, which is how a property is kept out of the designer file when it still holds its default.

ShouldSerializeItems

public bool ShouldSerializeItems()

Tells the designer whether Items is worth writing into the generated code, which is how a property is kept out of the designer file when it still holds its default.

ShouldSerializeSelectedItem

public bool ShouldSerializeSelectedItem()

Tells the designer whether SelectedItem is worth writing into the generated code, which is how a property is kept out of the designer file when it still holds its default.

Events

TabElementsLayoutChanging

public event EventHandler<string> TabElementsLayoutChanging

An event that is raised just before the Tab Control instance performs refreshing its elements layout.

When handling this event, please ensure to not update the same property that triggered the layout change currently.
You can check for the source property that initiated the Tab Control's layout change by looking up to the string property "propertyNameThatTriggeredLayoutChangeRequest" that is supplied as a payload to this event.

TabPageClosed

public event EventHandler TabPageClosed

Occurs when a tab page is closed.

TabPageClosing

public event TabPageClosingHandler TabPageClosing

Occurs when a tab page is closing.

TabPageDoubleClicked

public event EventHandler<TabPageDoubleClickedEventArgs> TabPageDoubleClicked

This event is raised when the user double-clicks on the tab page's header area.

TabPageSelectionChanged

public event TabPageChangedHandler TabPageSelectionChanged

Occurs when a tab page selection is changed.

TabStyleRenderingStyleChanged

public event EventHandler TabStyleRenderingStyleChanged

Occurs when the tab style rendering style is changed.