Class ItemStateManagerBase
Provides a base implementation for managing visual states of RadControl items. Handles state transitions, validation, and fallback mechanisms for theming.
Inheritance
Inherited Members
Namespace: Telerik.WinControls.Styles
Assembly: Telerik.WinControls.dll
Syntax
public abstract class ItemStateManagerBase
Constructors
ItemStateManagerBase()
Initializes a new instance of the ItemStateManagerBase class.
Declaration
public ItemStateManagerBase()
Fields
stateDelimiter
The delimiter character used to separate state names.
Declaration
public const char stateDelimiter = '.'
Field Value
System.Char
|
Properties
DefaultVisibleStates
Gets the collection of default visible states for this state manager.
Declaration
public IEnumerable<string> DefaultVisibleStates { get; }
Property Value
System.Collections.Generic.IEnumerable<System.String>
An enumerable collection of default visible state names. |
Methods
AddDefaultVisibleState(String)
Adds a state to the default visible states collection.
Declaration
public void AddDefaultVisibleState(string state)
Parameters
System.String
state
The state name to add. |
Exceptions
System.InvalidOperationException
Thrown if the state is not recognized by the state manager. |
AttachToItem(RadObject)
Attaches this state manager to the specified item, enabling state management.
Declaration
public virtual StateManagerAttachmentData AttachToItem(RadObject item)
Parameters
RadObject
item
The RadObject item to attach to. |
Returns
StateManagerAttachmentData
Attachment data for the state manager connection. |
AttachToItemOverride(StateManagerAttachmentData, RadObject)
Provides derived classes with the opportunity to perform custom attachment logic.
Declaration
protected abstract void AttachToItemOverride(StateManagerAttachmentData attachData, RadObject item)
Parameters
StateManagerAttachmentData
attachData
The attachment data for the state manager connection. |
RadObject
item
The RadObject item being attached to. |
CombineStateNames(String, String)
Combines state names, using stateDelimiter Character.
Declaration
public static string CombineStateNames(string stateName, string stateName1)
Parameters
System.String
stateName
The first state name. |
System.String
stateName1
The second state name to combine. |
Returns
System.String
The combined state name using the delimiter. |
Remarks
E.g. combining "Selected" and "MouseOver" gives "Selected.MouseOver"; combining "" and "MouseOver" gives "MouseOver"
Detach(StateManagerAttachmentData)
Detaches the state manager from an item, cleaning up resources.
Declaration
public virtual void Detach(StateManagerAttachmentData data)
Parameters
StateManagerAttachmentData
data
The attachment data to detach. |
GetAvailableStates(String)
Gets the available states for the specified theme role. Must be implemented by derived classes.
Declaration
public abstract StateDescriptionNode GetAvailableStates(string themeRoleName)
Parameters
System.String
themeRoleName
The theme role name to get states for. |
Returns
StateDescriptionNode
The root state description node containing all available states. |
GetInitialState(RadObject)
Gets the initial state for the specified RadObject item. Uses the ThemeRole if the item is stylable, otherwise uses the type name.
Declaration
public virtual string GetInitialState(RadObject item)
Parameters
RadObject
item
The item to get the initial state for. |
Returns
System.String
The initial state string for the item. |
GetStateFallbackList(RadItem)
Gets a fallback list of states for the specified item, providing progressively less specific states.
Declaration
public IEnumerable<string> GetStateFallbackList(RadItem item)
Parameters
RadItem
item
The RadItem to get state fallbacks for. |
Returns
System.Collections.Generic.IEnumerable<System.String>
An enumerable collection of fallback state names. |
GetStateFullName(String, String)
Gets the full state name by combining the item theme role with the state name.
Declaration
public string GetStateFullName(string itemThemeRole, string stateName)
Parameters
System.String
itemThemeRole
The theme role of the item. |
System.String
stateName
The state name to combine. |
Returns
System.String
The full state name combining theme role and state. |
ItemStateChanged(RadObject, RadPropertyChangedEventArgs)
Handles item state changes. Must be implemented by derived classes.
Declaration
public abstract void ItemStateChanged(RadObject senderItem, RadPropertyChangedEventArgs changeArgs)
Parameters
RadObject
senderItem
The RadObject item that changed state. |
RadPropertyChangedEventArgs
changeArgs
The property change event arguments. |
RemoveDefaultVisibleState(String)
Removes a state from the default visible states collection.
Declaration
public void RemoveDefaultVisibleState(string state)
Parameters
System.String
state
The state name to remove. |
Exceptions
System.InvalidOperationException
Thrown if the state is not recognized by the state manager. |
SetItemState(RadObject, String[])
Combines ThemeRoleName with state names using "." as delimiter and sets the result to AttachedElement.Class
Declaration
protected void SetItemState(RadObject item, params string[] stateNames)
Parameters
RadObject
item
The RadObject item to set state for. |
System.String[]
stateNames
Array of state names to combine. |
VerifyState(String)
Verifies if the specified state is valid for this state manager.
Declaration
public bool VerifyState(string state)
Parameters
System.String
state
The state string to verify. |
Returns
System.Boolean
True if the state is valid; otherwise, false. |
VerifyState(String, String)
Verifies if the specified state is valid for the given theme role.
Declaration
public virtual bool VerifyState(string themeRoleName, string key)
Parameters
System.String
themeRoleName
The theme role name to validate against. |
System.String
key
The state key to verify. |
Returns
System.Boolean
True if the state is valid; otherwise, false. |