ClassRadTabControlBase
Represents a base class for creating tabbed interfaces in WPF applications. The RadTabControlBase class provides comprehensive functionality for managing tab items, handling selection changes, and visually representing tabs along with their associated content. This class supports dependency properties that allow for customization of appearance, behavior, and content representation of tabs. It also encapsulates event handling for selection change notifications, dropdown events, and tab row reordering, enabling developers to create intuitive user interfaces that follow common tab navigation patterns. Additionally, this class includes methods for focus management and content preservation during tab selection changes, ensuring a smooth user experience.
Definition
Namespace:Telerik.Windows.Controls.TabControl
Assembly:Telerik.Windows.Controls.Navigation.dll
Syntax:
public abstract class RadTabControlBase : MultiSelector
Inheritance: objectRadTabControlBase
Derived Classes:
Constructors
RadTabControlBase()
Initializes a new instance of the RadTabControlBase class.
Declaration
protected RadTabControlBase()
Fields
BackgroundVisibilityProperty
Identifies the BackgroundVisibility property.
Declaration
public static readonly DependencyProperty BackgroundVisibilityProperty
Field Value
DependencyProperty
ContentTemplateProperty
Identifies the ContentTemplate property.
Declaration
public static readonly DependencyProperty ContentTemplateProperty
Field Value
DependencyProperty
ContentTemplateSelectorProperty
Identifies the ContentTemplateSelector property.
Declaration
public static readonly DependencyProperty ContentTemplateSelectorProperty
Field Value
DependencyProperty
DropDownClosedEvent
Identifies the DropDownClosed routed event.
Declaration
public static readonly RoutedEvent DropDownClosedEvent
Field Value
RoutedEvent
DropDownOpenedEvent
Identifies the DropDownOpened routed event.
Declaration
public static readonly RoutedEvent DropDownOpenedEvent
Field Value
RoutedEvent
HeaderBackgroundProperty
Identifies the HeaderBackground property.
Declaration
public static readonly DependencyProperty HeaderBackgroundProperty
Field Value
DependencyProperty
IsContentPreservedProperty
Identifies the IsContentPreserved property.
Declaration
public static readonly DependencyProperty IsContentPreservedProperty
Field Value
DependencyProperty
PreviewSelectionChangedEvent
Identifies the PreviewSelectionChanged routed event.
Declaration
[SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Justification = "The Routed event args cannot be changed.")]
public static readonly RoutedEvent PreviewSelectionChangedEvent
Field Value
RoutedEvent
PropagateItemDataContextToContentProperty
Identifies the PropagateItemDataContextToContent property.
Declaration
public static readonly DependencyProperty PropagateItemDataContextToContentProperty
Field Value
DependencyProperty
ReorderTabRowsProperty
Identifies the ReorderTabRows property.
Declaration
public static readonly DependencyProperty ReorderTabRowsProperty
Field Value
DependencyProperty
SelectedContentProperty
Identifies the SelectedContent property.
Declaration
public static readonly DependencyProperty SelectedContentProperty
Field Value
DependencyProperty
SelectedContentTemplateProperty
Identifies the SelectedContentTemplate property.
Declaration
public static readonly DependencyProperty SelectedContentTemplateProperty
Field Value
DependencyProperty
SelectedContentTemplateSelectorProperty
Identifies the SelectedContentTemplateSelector property.
Declaration
public static readonly DependencyProperty SelectedContentTemplateSelectorProperty
Field Value
DependencyProperty
SelectedItemRemoveBehaviourProperty
Identifies the SelectedItemRemoveBehaviour property.
Declaration
public static readonly DependencyProperty SelectedItemRemoveBehaviourProperty
Field Value
DependencyProperty
SelectionChangedEvent
Identifies the SelectionChanged routed event.
Declaration
[SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Justification = "The Routed event args cannot be changed.")]
public static readonly RoutedEvent SelectionChangedEvent
Field Value
RoutedEvent
Properties
BackgroundVisibility
Gets or sets the visibility of the background panel for the headers in the tab control. This is a dependency property.
Declaration
[SRCategory("AppearanceCategory")]
[SRDescription("TabControlBackgroundOpacityDescription")]
public virtual Visibility BackgroundVisibility { get; set; }
Property Value
Visibility
Remarks
This property gives you a quick way to change the visibility of the background without having to modify the ControlTemplate of the TabControl.
This property does not affect the visibility of the divider (the line between the items and the content). To change the divider, edit the appropriate control template.
The default value is Visible.
ContentElement
The ContentElement template part.
Declaration
protected ContentPresenter ContentElement { get; set; }
Property Value
ContentPresenter
The content element.
ContentElementsPanel
The ContentElementsPanel template part.
Declaration
protected Grid ContentElementsPanel { get; set; }
Property Value
Grid
The content element.
ContentTemplate
Gets or sets the DataTemplate that will be used as a content template for all items that do not have a ContentTemplate. This is a dependency property.
Declaration
[SRCategory("AppearanceCategory")]
public virtual DataTemplate ContentTemplate { get; set; }
Property Value
DataTemplate
ContentTemplateSelector
Gets or sets the DataTemplateSelector that will be used to select a data template for the items that do not have a ContentTemplate set. This is a dependency property.
Declaration
[SRCategory("AppearanceCategory")]
public virtual DataTemplateSelector ContentTemplateSelector { get; set; }
Property Value
DataTemplateSelector
HeaderBackground
Gets or sets the background of the tab strip. This is a dependency property.
Declaration
[SRCategory("AppearanceCategory")]
public virtual Brush HeaderBackground { get; set; }
Property Value
Brush
Remarks
This property gives you a quick way to change the tab strip background without having to modify the ControlTemplate of the TabControl.
IsContentPreserved
Gets or sets a value indicating whether the state of the content will be preserved when selection is changed.
Declaration
public virtual bool IsContentPreserved { get; set; }
Property Value
True if the first tab will preserve the content state; otherwise, false.
IsDefaultItemSelected
Gets or sets a value indicating whether the first tab item will be selected by default on start up.
Declaration
public bool IsDefaultItemSelected { get; set; }
Property Value
True if the first tab item will be selected; otherwise, false.
PropagateItemDataContextToContent
Gets or sets a value indication whether the data context of the tab item should be assigned as DataContext of the content area when the selection changes. The default is true.
Declaration
public virtual bool PropagateItemDataContextToContent { get; set; }
Property Value
Remarks
In Silverlight the DataContext is inherited visually and it may be expected that the content of a tab item will have its DataContext. This property specifies that the DataContext of the content area will be changed to assure this.
ReorderTabRows
Gets or sets whether the tab item rows would be reordered when selected. This is a dependency property.
Declaration
[SRCategory("BehaviourCategory")]
[SRDescription("TabControlReorderTabRowsDescription")]
public virtual bool ReorderTabRows { get; set; }
Property Value
Remarks
The ReorderTabRows property governs the behavior of the tab items when selected. Its effect can only be observed when more than one row of tab items are present.
Setting the property to true would make the rows in the TabStrip change place so that the selected item is always in the row nearest to the presented content (i.e. the bottommost row in a Top position, the rightmost column in a Left position, etc.)
Please note that the index of each item remains the same even when reordered.
The default value is true.
SelectedContent
Gets the content of the selected item. This is a dependency property.
Declaration
[Browsable(false)]
public virtual object SelectedContent { get; set; }
Property Value
Remarks
The SelectedContent property returns the content of the currently selected item.
If no items are selected, the property would return null.
SelectedContentTemplate
Gets the content template of the currently selected item. Do not set this property because it is changed internally. This is a dependency property.
Declaration
[Browsable(false)]
public virtual DataTemplate SelectedContentTemplate { get; set; }
Property Value
DataTemplate
Remarks
The ContentTemplate property returns the content template of the currently selected item.
Note that the property cannot be set. To change the ContentTemplate of the tab items, use the and properties if an has been provided. Alternatively the can be used to assign a template on a per-item basis.
SelectedContentTemplateSelector
Gets the DataTemplateSelector for the currently selected item. Do not set this property because it is changed internally. This is a dependency property.
Declaration
[SRCategory("AppearanceCategory")]
[Browsable(false)]
public virtual DataTemplateSelector SelectedContentTemplateSelector { get; set; }
Property Value
DataTemplateSelector
SelectedItemRemoveBehaviour
Determines what item should be selected when SelectedItem is removed.
Declaration
public SelectedItemRemoveBehaviour SelectedItemRemoveBehaviour { get; set; }
Property Value
SupressSelectedContentTemplateReapplying
Gets or sets a value indicating whether the ContentPresenter rendering the tab items must refresh its data template on selection change. This property must be use in case when visual objects are used in the view model child collection bound to the tab control.
Declaration
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Supress")]
public virtual bool SupressSelectedContentTemplateReapplying { get; set; }
Property Value
TabFlags
Gets the flags.
Declaration
[SuppressMessage("Microsoft.Naming", "CA1726:UsePreferredTerms", MessageId = "Flags")]
protected RadTabControlBase.TabControlState TabFlags { get; }
Property Value
TabStrip
Gets or sets the tab strip. The tab strip visually represents the headers of tab items.
Declaration
protected Panel TabStrip { get; set; }
Property Value
Panel
The tab strip.
this[int]
Indexer, gets the tab item with the given index in the items collection.
Declaration
public virtual IRadTabItem this[int index] { get; }
Parameters
index
The index of the tab item in the Items collection of tab control.
Property Value
The tab item with the given index in the Items collection of the tab control.
Remarks
You can use the indexer to quickly get the item at given index. The indexer is a shortcut for the ContainerFromIndex method.
Note that you cannot use the indexer to change (replace) an item if you would like to do this use the property. If an invalid index is passed null is returned.
Methods
AddDropDownClosedHandler(UIElement, DropDownEventHandler)
Adds a handler to the target for the DropDownClosed routed event.
Declaration
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Justification = "The AddHandler method in WPF is on UIElement")]
public static void AddDropDownClosedHandler(UIElement target, DropDownEventHandler handler)
Parameters
target
UIElement
The target element to add a handler to.
handler
The handler to add for this event.
AddDropDownOpenedHandler(UIElement, DropDownEventHandler)
Adds a handler to the target for the DropDownOpened routed event.
Declaration
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Justification = "The AddHandler method in WPF is on UIElement")]
public static void AddDropDownOpenedHandler(UIElement target, DropDownEventHandler handler)
Parameters
target
UIElement
The target element to add a handler to.
handler
The handler to add for this event.
ChangeVisualState(bool)
Updates the visual states of the control.
Declaration
protected virtual void ChangeVisualState(bool useTransitions)
Parameters
useTransitions
Identifies whether the transitions should be used.
ClearContentSafely()
Clears all ContentPresenter elements inside the ContentElementStorage template part and clears the ContentElement template part. Also clears the ContentElementStorage children used to represent content from different tab items.
Declaration
protected void ClearContentSafely()
GetContainer()
Returns a new instance of the control that implements the IRadTabItem interface.
GetContainerForItemOverride()
Creates the element that is used to display the given item.
Declaration
protected override DependencyObject GetContainerForItemOverride()
Returns
DependencyObject
GoToState(bool, params string[])
Attempts to move the control to one of the states in the list.
IsItemItsOwnContainerOverride(object)
Determines if the specified item is (or is eligible to be) its own container.
IsSelectionNonBoundAtClientSide()
Determines of user has no bindings to SelectedIndex or SelectedItem properties.
OnPreviewSelectionChanged(SelectionChangedEventArgs)
Raises the PreviewSelectionChangedEvent.
Declaration
protected virtual void OnPreviewSelectionChanged(SelectionChangedEventArgs e)
Parameters
e
SelectionChangedEventArgs
OnSelectionChanged(RadSelectionChangedEventArgs)
Raises the SelectionChanged routed event.
Declaration
protected virtual void OnSelectionChanged(RadSelectionChangedEventArgs e)
Parameters
e
RemoveDropDownClosedHandler(UIElement, DropDownEventHandler)
Removes a handler to the target for the DropDownClosed routed event.
Declaration
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Justification = "The AddHandler method in WPF is on UIElement")]
public static void RemoveDropDownClosedHandler(UIElement target, DropDownEventHandler handler)
Parameters
target
UIElement
The target element to remove a handler from.
handler
The handler to remove for this element.
RemoveDropDownOpenedHandler(UIElement, DropDownEventHandler)
Removes a handler to the target for the DropDownOpened routed event.
Declaration
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Justification = "The AddHandler method in WPF is on UIElement")]
public static void RemoveDropDownOpenedHandler(UIElement target, DropDownEventHandler handler)
Parameters
target
UIElement
The target element to remove a handler from.
handler
The handler to remove for this element.
Selector_SelectionChanged(object, SelectionChangedEventArgs)
Handles the event of the Selector control.
Declaration
[SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores")]
protected virtual void Selector_SelectionChanged(object sender, SelectionChangedEventArgs e)
Parameters
sender
The source of the event.
e
SelectionChangedEventArgs
The instance containing the event data.
UpdateFocusOnSelectionChange()
Updates the focus. This method should be called after selection of tab item in order to focus the appropriate element. If the focus is outside the tab or in the contents of the previously selected tab item then the first element in the selected tab contents will be focused. If the TabStrip is focused calling this method will focus the newly selected tab header.
Declaration
protected virtual void UpdateFocusOnSelectionChange()
UpdateSelectedContentProperties()
Updates the selected content properties SelectedContent, SelectedContentTemplate and SelectedContentTemplateSelector. This method must be implemented appropriately in the deriving class. Selected content properties are used when representing the content of selected tab item.
Declaration
protected virtual void UpdateSelectedContentProperties()
UpdateTabRows()
Visually updates the tab rows.
Declaration
protected virtual void UpdateTabRows()
Events
DropDownClosed
An event that is raised when the DropDownMenu is closed. This is a RoutedEvent.
Declaration
public virtual event DropDownEventHandler DropDownClosed
Event Value
DropDownOpened
An event that is raised when the DropDownMenu is opened. This is a RoutedEvent.
Declaration
public virtual event DropDownEventHandler DropDownOpened
Event Value
PreviewSelectionChanged
The preview event for SelectionChanged event. Handling this event rollbacks the selection. This is a RoutedEvent.
Declaration
public event RadSelectionChangedEventHandler PreviewSelectionChanged
Event Value
SelectionChanged
Occurs when a changed has been made to the selection. This is a RoutedEvent.
Declaration
[SRDescription("TabControlSelectionChangedDescription")]
public event RadSelectionChangedEventHandler SelectionChanged
Event Value