RadTabControlBase
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
Initializes a new instance of the RadTabControlBase class.
protected RadTabControlBase()
Fields
BackgroundVisibilityProperty
DependencyProperty
Identifies the BackgroundVisibility property.
public static readonly DependencyProperty BackgroundVisibilityProperty
ContentTemplateProperty
DependencyProperty
Identifies the ContentTemplate property.
public static readonly DependencyProperty ContentTemplateProperty
ContentTemplateSelectorProperty
DependencyProperty
Identifies the ContentTemplateSelector property.
public static readonly DependencyProperty ContentTemplateSelectorProperty
DropDownClosedEvent
RoutedEvent
Identifies the DropDownClosed routed event.
public static readonly RoutedEvent DropDownClosedEvent
DropDownOpenedEvent
RoutedEvent
Identifies the DropDownOpened routed event.
public static readonly RoutedEvent DropDownOpenedEvent
HeaderBackgroundProperty
DependencyProperty
Identifies the HeaderBackground property.
public static readonly DependencyProperty HeaderBackgroundProperty
IsContentPreservedProperty
DependencyProperty
Identifies the IsContentPreserved property.
public static readonly DependencyProperty IsContentPreservedProperty
PreviewSelectionChangedEvent
RoutedEvent
Identifies the PreviewSelectionChanged routed event.
public static readonly RoutedEvent PreviewSelectionChangedEvent
PropagateItemDataContextToContentProperty
DependencyProperty
Identifies the PropagateItemDataContextToContent property.
public static readonly DependencyProperty PropagateItemDataContextToContentProperty
ReorderTabRowsProperty
DependencyProperty
Identifies the ReorderTabRows property.
public static readonly DependencyProperty ReorderTabRowsProperty
SelectedContentProperty
DependencyProperty
Identifies the SelectedContent property.
public static readonly DependencyProperty SelectedContentProperty
SelectedContentTemplateProperty
DependencyProperty
Identifies the SelectedContentTemplate property.
public static readonly DependencyProperty SelectedContentTemplateProperty
SelectedContentTemplateSelectorProperty
DependencyProperty
Identifies the SelectedContentTemplateSelector property.
public static readonly DependencyProperty SelectedContentTemplateSelectorProperty
SelectedItemRemoveBehaviourProperty
DependencyProperty
Identifies the SelectedItemRemoveBehaviour property.
public static readonly DependencyProperty SelectedItemRemoveBehaviourProperty
SelectionChangedEvent
RoutedEvent
Identifies the SelectionChanged routed event.
public static readonly RoutedEvent SelectionChangedEvent
Properties
BackgroundVisibility
Visibility
Gets or sets the visibility of the background panel for the headers in the tab control. This is a dependency property.
[SRCategory("AppearanceCategory")]
[SRDescription("TabControlBackgroundOpacityDescription")]
public virtual Visibility BackgroundVisibility { get; set; }
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
ContentPresenter
The ContentElement template part.
protected ContentPresenter ContentElement { get; set; }
The content element.
The ContentElementsPanel template part.
protected Grid ContentElementsPanel { get; set; }
The content element.
ContentTemplate
DataTemplate
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.
[SRCategory("AppearanceCategory")]
public virtual DataTemplate ContentTemplate { get; set; }
ContentTemplateSelector
DataTemplateSelector
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.
[SRCategory("AppearanceCategory")]
public virtual DataTemplateSelector ContentTemplateSelector { get; set; }
HeaderBackground
Brush
Gets or sets the background of the tab strip. This is a dependency property.
[SRCategory("AppearanceCategory")]
public virtual Brush HeaderBackground { get; set; }
This property gives you a quick way to change the tab strip background without having to modify the ControlTemplate of the TabControl.
Gets or sets a value indicating whether the state of the content will be preserved when selection is changed.
public virtual bool IsContentPreserved { get; set; }
True if the first tab will preserve the content state; otherwise, false.
Gets or sets a value indicating whether the first tab item will be selected by default on start up.
public bool IsDefaultItemSelected { get; set; }
True if the first tab item will be selected; otherwise, false.
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.
public virtual bool PropagateItemDataContextToContent { get; set; }
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.
Gets or sets whether the tab item rows would be reordered when selected. This is a dependency property.
[SRCategory("BehaviourCategory")]
[SRDescription("TabControlReorderTabRowsDescription")]
public virtual bool ReorderTabRows { get; set; }
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.
Gets the content of the selected item. This is a dependency property.
[Browsable(false)]
public virtual object SelectedContent { get; set; }
The SelectedContent property returns the content of the currently selected item.
If no items are selected, the property would return null.
SelectedContentTemplate
DataTemplate
Gets the content template of the currently selected item. Do not set this property because it is changed internally. This is a dependency property.
[Browsable(false)]
public virtual DataTemplate SelectedContentTemplate { get; set; }
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
DataTemplateSelector
Gets the DataTemplateSelector for the currently selected item. Do not set this property because it is changed internally. This is a dependency property.
[SRCategory("AppearanceCategory")]
[Browsable(false)]
public virtual DataTemplateSelector SelectedContentTemplateSelector { get; set; }
Determines what item should be selected when SelectedItem is removed.
public SelectedItemRemoveBehaviour SelectedItemRemoveBehaviour { get; set; }
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.
public virtual bool SupressSelectedContentTemplateReapplying { get; set; }
Gets the flags.
protected RadTabControlBase.TabControlState TabFlags { get; }
TabStrip
Panel
Gets or sets the tab strip. The tab strip visually represents the headers of tab items.
protected Panel TabStrip { get; set; }
The tab strip.
Indexer, gets the tab item with the given index in the items collection.
public virtual IRadTabItem this[int index] { get; }
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.
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
Adds a handler to the target for the DropDownClosed routed event.
public static void AddDropDownClosedHandler(UIElement target, DropDownEventHandler handler)
The target element to add a handler to.
handlerDropDownEventHandlerThe handler to add for this event.
Adds a handler to the target for the DropDownOpened routed event.
public static void AddDropDownOpenedHandler(UIElement target, DropDownEventHandler handler)
The target element to add a handler to.
handlerDropDownEventHandlerThe handler to add for this event.
Updates the visual states of the control.
protected virtual void ChangeVisualState(bool useTransitions)
Identifies whether the transitions should be used.
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.
protected void ClearContentSafely()
Returns a new instance of the control that implements the IRadTabItem interface.
GetContainerForItemOverride()
DependencyObject
Creates the element that is used to display the given item.
protected override DependencyObject GetContainerForItemOverride()
DependencyObject
Determines of user has no bindings to SelectedIndex or SelectedItem properties.
Raises the PreviewSelectionChangedEvent.
protected virtual void OnPreviewSelectionChanged(SelectionChangedEventArgs e)
Raises the SelectionChanged routed event.
protected virtual void OnSelectionChanged(RadSelectionChangedEventArgs e)
Removes a handler to the target for the DropDownClosed routed event.
public static void RemoveDropDownClosedHandler(UIElement target, DropDownEventHandler handler)
The target element to remove a handler from.
handlerDropDownEventHandlerThe handler to remove for this element.
Removes a handler to the target for the DropDownOpened routed event.
public static void RemoveDropDownOpenedHandler(UIElement target, DropDownEventHandler handler)
The target element to remove a handler from.
handlerDropDownEventHandlerThe handler to remove for this element.
Handles the event of the Selector control.
protected virtual void Selector_SelectionChanged(object sender, SelectionChangedEventArgs e)
The source of the event.
eSelectionChangedEventArgsThe instance containing the event data.
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.
protected virtual void UpdateFocusOnSelectionChange()
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.
protected virtual void UpdateSelectedContentProperties()
Visually updates the tab rows.
protected virtual void UpdateTabRows()
Events
An event that is raised when the DropDownMenu is closed. This is a RoutedEvent.
public virtual event DropDownEventHandler DropDownClosed
An event that is raised when the DropDownMenu is opened. This is a RoutedEvent.
public virtual event DropDownEventHandler DropDownOpened
The preview event for SelectionChanged event. Handling this event rollbacks the selection. This is a RoutedEvent.
public event RadSelectionChangedEventHandler PreviewSelectionChanged
Occurs when a changed has been made to the selection. This is a RoutedEvent.
[SRDescription("TabControlSelectionChangedDescription")]
public event RadSelectionChangedEventHandler SelectionChanged