skip navigation
  • Product Bundles

    DevCraft

    All Telerik .NET tools and Kendo UI JavaScript components in one package. Now enhanced with:

    • AI Coding Assistants
    • Embedded Reporting
    • Document Processing Libraries
    • SSO Account Sign-in

    Web

    Kendo UI UI for Angular UI for Vue UI for jQuery KendoReact UI for Blazor UI for ASP.NET Core UI for ASP.NET MVC UI for ASP.NET AJAX

    Mobile

    UI for .NET MAUI

    Document Management

    Telerik Document Processing

    Desktop

    UI for .NET MAUI UI for WinUI UI for WinForms UI for WPF

    Reporting

    Telerik Reporting Telerik Report Server

    Testing & Mocking

    Test Studio Telerik JustMock

    CMS

    Sitefinity

    AI Productivity Tools

    AI Coding Assistants

    UI/UX Tools

    ThemeBuilder Design System Kit Templates and Building Blocks

    Debugging

    Fiddler Fiddler Everywhere Fiddler Classic Fiddler Everywhere Reporter FiddlerCore

    Free Tools

    KendoReact Free VB.NET to C# Converter Testing Framework
    View all products
  • Overview
  • Demos
    • What's New
    • Roadmap
    • Release History
  • Support and Learning

    • Support and Learning Hub
    • First Steps
    • Docs
    • Demos
    • Virtual Classroom
    • Forums
    • Videos
    • Blogs
    • Accessibility
    • Submit a Ticket

    Productivity and Design Tools

    • Visual Studio Extensions
    • Visual Studio Templates
    • Embedded Reporting
  • Pricing
  • Shopping cart
    • Account Overview
    • Your Licenses
    • Downloads
    • Support Center
    • Forum Profile
    • Payment Methods
    • Edit Profile
    • Log out
  • Login
  • Contact Us
  • Try now

Class GroupStatePrimitive

Represents a primitive element that renders visual indicators for expandable/collapsible group states, commonly used in panel bars, tree views, and other hierarchical controls within the Telerik WinControls framework.

Inheritance
System.Object
DisposableObject
RadObject
RadElement
VisualElement
BasePrimitive
GroupStatePrimitive
Inherited Members
BasePrimitive.BoxCategory
BasePrimitive.PaintElement(IGraphics, Single, SizeF)
BasePrimitive.IsEmpty
VisualElement.DefaultSizeProperty
VisualElement.ForeColorProperty
VisualElement.BackColorProperty
VisualElement.FontProperty
VisualElement.SmoothingModeProperty
VisualElement.OpacityProperty
VisualElement.CustomFontProperty
VisualElement.CustomFontSizeProperty
VisualElement.CustomFontStyleProperty
VisualElement.OnFontChanged(EventArgs)
VisualElement.OnPropertyChanging(RadPropertyChangingEventArgs)
VisualElement.OnPropertyChanged(RadPropertyChangedEventArgs)
VisualElement.PaintChildren(IGraphics, Rectangle, Single, SizeF, Boolean)
VisualElement.PrePaintElement(IGraphics)
VisualElement.PostPaintElement(IGraphics)
VisualElement.GetScaledFont(Single)
VisualElement.GetScaledFont(Single, Font)
VisualElement.DefaultSize
VisualElement.ForeColor
VisualElement.BackColor
VisualElement.Font
VisualElement.CustomFont
VisualElement.CustomFontSize
VisualElement.CustomFontStyle
VisualElement.SmoothingMode
VisualElement.Opacity
VisualElement.FontChanged
RadElement.BoundsProperty
RadElement.BorderThicknessProperty
RadElement.PaddingProperty
RadElement.MarginProperty
RadElement.AlignmentProperty
RadElement.AutoSizeModeProperty
RadElement.FitToSizeModeProperty
RadElement.MinSizeProperty
RadElement.EnabledProperty
RadElement.CanFocusProperty
RadElement.IsItemFocusedProperty
RadElement.IsFocusedProperty
RadElement.IsMouseOverProperty
RadElement.IsMouseOverElementProperty
RadElement.IsMouseDownProperty
RadElement.ShouldPaintProperty
RadElement.VisibilityProperty
RadElement.NameProperty
RadElement.ClassProperty
RadElement.ClipDrawingProperty
RadElement.ShapeProperty
RadElement.MouseClickedEvent
RadElement.MouseDoubleClickedEvent
RadElement.MouseDownEvent
RadElement.MouseUpEvent
RadElement.MouseWheelEvent
RadElement.ChildElementAddedEvent
RadElement.ParentChangedEvent
RadElement.BoundsChangedEvent
RadElement.VisibilityChangingEvent
RadElement.EnabledChangedEvent
RadElement.ControlChangedEvent
RadElement.BackgroundShapeProperty
RadElement.BackgroundShapePaintModeProperty
RadElement.ContainsFocusProperty
RadElement.ContainsMouseProperty
RadElement.IsEditedInSpyProperty
RadElement.MaxSizeProperty
RadElement.RightToLeftProperty
RadElement.AutoSizeProperty
RadElement.ZIndexProperty
RadElement.AngleTransformProperty
RadElement.ScaleTransformProperty
RadElement.PositionOffsetProperty
RadElement.TagProperty
RadElement.StretchHorizontallyProperty
RadElement.StretchVerticallyProperty
RadElement.UseCompatibleTextRenderingProperty
RadElement.ClickModeProperty
RadElement.styleVersion
RadElement.paintSystemSkin
RadElement.TraceInvalidation
RadElement.SetPropertyValueCommand
RadElement.GetPropertyValueCommand
RadElement.RadElementLastStateKey
RadElement.StyleProperty
RadElement.CallCreateChildElements()
RadElement.SuspendReferenceUpdate()
RadElement.ResumeReferenceUpdate()
RadElement.CreateChildElements()
RadElement.OnLoad(Boolean)
RadElement.CallOnLoad(Boolean)
RadElement.LoadCore()
RadElement.OnLoaded()
RadElement.OnUnload(ComponentThemableElementTree, Boolean)
RadElement.UnloadCore(ComponentThemableElementTree)
RadElement.OnUnloaded(ComponentThemableElementTree)
RadElement.OnElementTreeChanged(ComponentThemableElementTree)
RadElement.OnBeginDispose()
RadElement.SetParent(RadElement)
RadElement.OnParentChanged(RadElement)
RadElement.UpdateReferences(ComponentThemableElementTree, Boolean, Boolean)
RadElement.SetIsDesignMode(Boolean, Boolean)
RadElement.ChangeCollection(RadElement, ItemsChangeOperation)
RadElement.ResetLayout(Boolean)
RadElement.HasInvisibleAncestor()
RadElement.ResetLayoutCore()
RadElement.SetAllLocalValuesAsDefault(Boolean)
RadElement.InvalidateArrange()
RadElement.InvalidateArrange(Boolean)
RadElement.InvalidateMeasure()
RadElement.InvalidateMeasure(Boolean)
RadElement.UpdateLayout()
RadElement.SuspendLayout()
RadElement.SuspendLayout(Boolean)
RadElement.ResumeLayout(Boolean)
RadElement.ResumeLayout(Boolean, Boolean)
RadElement.Arrange(RectangleF)
RadElement.Measure(SizeF)
RadElement.SetBounds(Rectangle)
RadElement.SetBounds(Int32, Int32, Int32, Int32)
RadElement.GetBoundingRectangle(Size)
RadElement.GetBoundingRectangle(Rectangle)
RadElement.GetDesiredSize(Boolean)
RadElement.PointToScreen(Point)
RadElement.PointFromScreen(Point)
RadElement.PointToControl(Point)
RadElement.PointFromControl(Point)
RadElement.LocationToControl()
RadElement.RectangleToScreen(Rectangle)
RadElement.HitTest(Point)
RadElement.CallOnRenderSizeChanged(SizeChangedInfo)
RadElement.OnRenderSizeChanged(SizeChangedInfo)
RadElement.OnChildDesiredSizeChanged(RadElement)
RadElement.OnLayoutPropertyChanged(RadPropertyChangedEventArgs)
RadElement.ArrangeCore(RectangleF)
RadElement.MeasureCore(SizeF)
RadElement.ShouldArrangeChild(RadElement)
RadElement.ArrangeOverride(SizeF)
RadElement.ShouldMeasureChild(RadElement)
RadElement.MeasureChildren(SizeF)
RadElement.GetArrangeRect(RectangleF)
RadElement.CanExecuteLayoutOperation()
RadElement.CalcLayoutOffset(PointF)
RadElement.LockBounds()
RadElement.UnlockBounds()
RadElement.SetBoundsCore(Rectangle)
RadElement.IsInValidState(Boolean)
RadElement.GetScrollingOffset()
RadElement.Invalidate()
RadElement.Invalidate(Boolean)
RadElement.GetInvalidateBounds()
RadElement.NotifyInvalidate(RadElement)
RadElement.OnTransformationInvalidated()
RadElement.InvalidateTransformations()
RadElement.PerformLayoutTransformation(RadMatrix)
RadElement.PerformPaintTransformation(RadMatrix)
RadElement.IsInGetAsBitmap()
RadElement.PaintElementSkin(IGraphics)
RadElement.PaintOverride(IGraphics, Rectangle, Single, SizeF, Boolean)
RadElement.Paint(IGraphics, Rectangle, Single, SizeF, Boolean)
RadElement.PaintBackgroundShape(IGraphics)
RadElement.PostPaintChildren(IGraphics, Rectangle, Single, SizeF)
RadElement.PaintChild(RadElement, IGraphics, Rectangle, Single, SizeF, Boolean)
RadElement.PaintShadow(RadElement, IGraphics)
RadElement.PaintShadowCore(Graphics, Rectangle, RadItem)
RadElement.GetShadowRect(Rectangle, Int32)
RadElement.PaintFocusCues(IGraphics, Rectangle)
RadElement.GetAsBitmap(IGraphics, Brush, Single, SizeF)
RadElement.GetAsTransformedBitmap(IGraphics, Brush, Single, SizeF)
RadElement.GetAsTransformedBitmap(Brush, Single, SizeF)
RadElement.GetAsTransformedBitmap(Rectangle, Brush, Single, SizeF)
RadElement.GetAsBitmapEx(Color, Single, SizeF)
RadElement.GetAsBitmapEx(Brush, Single, SizeF)
RadElement.GetAsBitmap(Brush, Single, SizeF)
RadElement.IsInVisibleClipBounds(Rectangle)
RadElement.SetClipping(Graphics)
RadElement.GetClipRect()
RadElement.ShouldPaintChild(RadElement)
RadElement.GetFocusRect()
RadElement.GetCurrentShape()
RadElement.GetPaintRectangle(Single, Single, SizeF)
RadElement.GetPatchedRect(RectangleF, Single, SizeF)
RadElement.GetXPVisualStyle()
RadElement.GetVistaVisualStyle()
RadElement.InitializeSystemSkinPaint()
RadElement.UnitializeSystemSkinPaint()
RadElement.GetSystemSkinPaintBounds()
RadElement.OnUseSystemSkinChanged(EventArgs)
RadElement.ShouldPaintSystemSkin()
RadElement.ComposeShouldPaintSystemSkin()
RadElement.MapStyleProperty(RadProperty, String)
RadElement.GetStylablePropertiesFilter()
RadElement.ResetStyleSettings(Boolean)
RadElement.ResetStyleSettings(Boolean, RadProperty)
RadElement.ProcessBehaviors(RadPropertyChangedEventArgs)
RadElement.AddBehavior(PropertyChangeBehavior)
RadElement.GetBehaviors()
RadElement.RemoveBehavior(PropertyChangeBehavior)
RadElement.ClearBehaviors()
RadElement.AddRangeBehavior(PropertyChangeBehaviorCollection)
RadElement.SetThemeApplied(Boolean)
RadElement.OnStyleChanged(RadPropertyChangedEventArgs)
RadElement.SuspendThemeRefresh()
RadElement.ResumeThemeRefresh()
RadElement.UnapplyStyle()
RadElement.RemoveRangeBehaviors(PropertyChangeBehaviorCollection)
RadElement.RemoveBehaviors(PropertyChangeBehavior)
RadElement.RemoveRangeRoutedEventBehaviors(RoutedEventBehaviorCollection)
RadElement.GetThemeEffectiveType()
RadElement.GetChildrenByType(Type)
RadElement.GetChildrenByBaseType(Type)
RadElement.FindAncestorByThemeEffectiveType(Type)
RadElement.FindAncestor<T>()
RadElement.IsAncestorOf(RadElement)
RadElement.FindDescendant<T>()
RadElement.FindDescendant(Predicate<RadElement>)
RadElement.FindDescendant(Type)
RadElement.EnumDescendants(TreeTraversalMode)
RadElement.EnumDescendants(Predicate<RadElement>, TreeTraversalMode)
RadElement.EnumDescendants(Filter, TreeTraversalMode)
RadElement.GetDescendants(Predicate<RadElement>, TreeTraversalMode)
RadElement.GetDescendants(Filter, TreeTraversalMode)
RadElement.GetAncestors(Filter)
RadElement.GetAncestors(Predicate<RadElement>)
RadElement.RaiseRoutedEvent(RadElement, RoutedEventArgs)
RadElement.RaiseTunnelEvent(RadElement, RoutedEventArgs)
RadElement.RaiseBubbleEvent(RadElement, RoutedEventArgs)
RadElement.OnTunnelEvent(RadElement, RoutedEventArgs)
RadElement.OnBubbleEvent(RadElement, RoutedEventArgs)
RadElement.IsEventInProcess(RaisedRoutedEvent)
RadElement.RegisterRoutedEvent(String, Type)
RadElement.GetRegisterRoutedEvent(String, Type)
RadElement.GetRegisterRoutedEvent(String, String)
RadElement.GetRegisterRoutedEvent(String)
RadElement.OnChildrenChanged(RadElement, ItemsChangeOperation)
RadElement.GetChildren(ChildrenListOptions)
RadElement.SendToBack()
RadElement.BringToFront()
RadElement.GetChildAt(Int32)
RadElement.IsChildOf(RadElement)
RadElement.Focus()
RadElement.Focus(Boolean)
RadElement.SetFocusPropertySafe(Boolean)
RadElement.SetElementFocused(Boolean)
RadElement.KillFocus()
RadElement.SetFocus()
RadElement.OnCLREventsRise(RoutedEventArgs)
RadElement.OnMouseMove(MouseEventArgs)
RadElement.OnMouseHover(EventArgs)
RadElement.OnEnabledChanged(RadPropertyChangedEventArgs)
RadElement.OnParentEnabledChanged(RadPropertyChangedEventArgs)
RadElement.OnMouseDown(MouseEventArgs)
RadElement.OnMouseUp(MouseEventArgs)
RadElement.OnLostMouseCapture(MouseEventArgs)
RadElement.OnClick(EventArgs)
RadElement.OnDoubleClick(EventArgs)
RadElement.OnMouseEnter(EventArgs)
RadElement.OnMouseLeave(EventArgs)
RadElement.PerformClick()
RadElement.OnMouseWheel(MouseEventArgs)
RadElement.DoMouseWheel(MouseEventArgs)
RadElement.DoClick(EventArgs)
RadElement.DoDoubleClick(EventArgs)
RadElement.CallDoMouseWheel(MouseEventArgs)
RadElement.IsInputKey(InputKeyEventArgs)
RadElement.MouseEventArgsFromControl(MouseEventArgs)
RadElement.DoMouseDown(MouseEventArgs)
RadElement.DoMouseUp(MouseEventArgs)
RadElement.DoMouseMove(MouseEventArgs)
RadElement.ShowScreenTip(ScreenTipNeededEventArgs)
RadElement.HideScreenTip()
RadElement.DoMouseHover(EventArgs)
RadElement.OnShowScreenTip(ComponentInputBehavior)
RadElement.RaiseClick(EventArgs)
RadElement.RaiseDoubleClick(EventArgs)
RadElement.RaiseMouseWheel(MouseEventArgs)
RadElement.UpdateContainsMouse()
RadElement.UpdateContainsFocus(Boolean)
RadElement.DoMouseEnter(EventArgs)
RadElement.DoMouseLeave(EventArgs)
RadElement.CallDoMouseDown(MouseEventArgs)
RadElement.CallDoMouseUp(MouseEventArgs)
RadElement.CallDoMouseMove(MouseEventArgs)
RadElement.CallDoMouseHover(EventArgs)
RadElement.CallDoMouseEnter(EventArgs)
RadElement.CallDoMouseLeave(EventArgs)
RadElement.CallDoClick(EventArgs)
RadElement.CallDoDoubleClick(EventArgs)
RadElement.GetValue(RadProperty)
RadElement.AddStylePropertySetting(IPropertySetting)
RadElement.SetValueCore(RadPropertyValue, Object, Object, ValueSource)
RadElement.NotifyChildren(RadPropertyChangedEventArgs)
RadElement.OnBoundsChanged(RadPropertyChangedEventArgs)
RadElement.OnLocationChanged(RadPropertyChangedEventArgs)
RadElement.OnDisplayPropertyChanged(RadPropertyChangedEventArgs)
RadElement.CanRaisePropertyChangeNotifications(RadPropertyValue)
RadElement.IsPropertyCancelable(RadPropertyMetadata)
RadElement.OnParentPropertyChanged(RadPropertyChangedEventArgs)
RadElement.ReplaceDefaultDescriptors(PropertyDescriptorCollection)
RadElement.ToString()
RadElement.DisposeManagedResources()
RadElement.PerformDispose(Boolean)
RadElement.DisposeChildren()
RadElement.ResetUseCompatibleTextRendering()
RadElement.ShouldSerializeUseCompatibleTextRendering()
RadElement.IStylableNode.GetThemeEffectiveType()
RadElement.IStylableNode.ApplySettings(PropertySettingGroup)
RadElement.GetStylableChildrenHierarchy()
RadElement.GetStylableChildren()
RadElement.ResetStyleVersion()
RadElement.GetClientRectangle(SizeF)
RadElement.GetBorderThickness(BorderPrimitive)
RadElement.DpiScaleChanged(SizeF)
RadElement.ElementState
RadElement.LayoutManager
RadElement.DesiredSize
RadElement.IsLayoutSuspended
RadElement.BoundingRectangle
RadElement.ControlBoundingRectangle
RadElement.BypassLayoutPolicies
RadElement.IsArrangeValid
RadElement.IsMeasureValid
RadElement.PreviousArrangeRect
RadElement.PreviousConstraint
RadElement.TreeLevel
RadElement.Transform
RadElement.TotalTransform
RadElement.ShouldPaintUsingParentShape
RadElement.UseSystemSkin
RadElement.VsbVisible
RadElement.CanHaveOwnStyle
RadElement.PropagateStyleToChildren
RadElement.ThemeEffectiveType
RadElement.ElementTree
RadElement.Children
RadElement.ChildrenHierarchy
RadElement.Parent
RadElement.RoutedEventBehaviors
RadElement.LayoutableChildrenCount
RadElement.ContainsFocus
RadElement.ShouldHandleMouseInput
RadElement.NotifyParentOnMouseInput
RadElement.IsAbleToRespondToMouseEvents
RadElement.AutoSize
RadElement.Bounds
RadElement.Location
RadElement.Size
RadElement.BorderThickness
RadElement.Padding
RadElement.Margin
RadElement.Alignment
RadElement.AutoSizeMode
RadElement.FitToSizeMode
RadElement.Enabled
RadElement.CanFocus
RadElement.IsFocused
RadElement.IsMouseOver
RadElement.IsMouseOverElement
RadElement.IsMouseDown
RadElement.InvalidateChildrenOnChildChanged
RadElement.ShouldPaint
RadElement.Visibility
RadElement.IsElementVisible
RadElement.Name
RadElement.Class
RadElement.ClipDrawing
RadElement.Shape
RadElement.MinSize
RadElement.MaxSize
RadElement.ZIndex
RadElement.RightToLeft
RadElement.UseCompatibleTextRendering
RadElement.BackgroundShape
RadElement.BackgroundShapePaintMode
RadElement.ContainsMouse
RadElement.Capture
RadElement.ScaleTransform
RadElement.AngleTransform
RadElement.PositionOffset
RadElement.SerializeProperties
RadElement.SerializeElement
RadElement.SerializeChildren
RadElement.RenderingMaxFramerate
RadElement.IsThemeApplied
RadElement.ShouldApplyTheme
RadElement.UseCenteredAngleTransform
RadElement.Tag
RadElement.ClickMode
RadElement.DoubleClickEnabled
RadElement.CaptureOnMouseDown
RadElement.IsFocusable
RadElement.IsItemHovered
RadElement.IStylableNode.Parent
RadElement.IStylableNode.ChildrenHierarchy
RadElement.IStylableNode.Children
RadElement.IStylableNode.Class
RadElement.Style
RadElement.ToolTipText
RadElement.AutoToolTip
RadElement.ScreenTip
RadElement.AutoNumberKeyTip
RadElement.MeasureIsDirty
RadElement.ArrangeIsDirty
RadElement.NeverMeasured
RadElement.NeverArranged
RadElement.ArrangeInProgress
RadElement.MeasureInProgress
RadElement.ShouldPaintChildren
RadElement.InvalidateMeasureOnRemove
RadElement.HideFromElementHierarchyEditor
RadElement.DpiScaleFactor
RadElement.LayoutUpdated
RadElement.ElementPainted
RadElement.MouseHover
RadElement.MouseMove
RadElement.MouseDown
RadElement.MouseUp
RadElement.Click
RadElement.DoubleClick
RadElement.MouseEnter
RadElement.MouseWheel
RadElement.EnabledChanged
RadElement.MouseLeave
RadElement.ChildrenChanged
RadElement.LostMouseCapture
RadObject.BindingContextProperty
RadObject.RadType
RadObject.ClearPropertyStore()
RadObject.SuspendPropertyNotifications()
RadObject.ResumePropertyNotifications()
RadObject.GetPropertyValue(RadProperty)
RadObject.SetDefaultValueOverride(RadProperty, Object)
RadObject.SetValueAtDesignTime(RadProperty, Object)
RadObject.SetValue(RadProperty, Object)
RadObject.ResetValue(RadProperty)
RadObject.ResetLocalValue(RadProperty)
RadObject.ResetValue(RadProperty, ValueResetFlags)
RadObject.UpdateValue(RadProperty)
RadObject.GetValueSource(RadProperty)
RadObject.GetRegisteredRadProperty(String)
RadObject.UpdateValueCore(RadPropertyValue)
RadObject.ResetValueCore(RadPropertyValue, ValueResetFlags)
RadObject.GetDefaultValue(RadPropertyValue, Object)
RadObject.CoerceValue(RadPropertyValue, Object)
RadObject.ShouldSerializeProperty(PropertyDescriptor)
RadObject.ShouldSerializeProperty(RadProperty)
RadObject.BindProperty(RadProperty, RadObject, RadProperty, PropertyBindingOptions)
RadObject.UnbindProperty(RadProperty)
RadObject.RemoveStylePropertySetting(IPropertySetting)
RadObject.RemoveStylePropertySetting(RadProperty)
RadObject.GetInheritedValue(RadProperty)
RadObject.OnNotifyPropertyChanged(String)
RadObject.OnNotifyPropertyChanged(PropertyChangedEventArgs)
RadObject.OnShouldSerializeProperty(ShouldSerializePropertyEventArgs)
RadObject.PropertyValues
RadObject.IsDesignMode
RadObject.PropertyFilter
RadObject.RadObjectType
RadObject.BindingContext
RadObject.PropertyChanged
RadObject.RadPropertyChanged
RadObject.RadPropertyChanging
RadObject.ShouldSerializePropertyHandler
DisposableObject.GetBitState(Int64)
DisposableObject.SetBitState(Int64, Boolean)
DisposableObject.OnBitStateChanged(Int64, Boolean, Boolean)
DisposableObject.Dispose()
DisposableObject.Dispose(Boolean)
DisposableObject.DisposeUnmanagedResources()
DisposableObject.BitState
DisposableObject.Events
DisposableObject.IsDisposing
DisposableObject.IsDisposed
DisposableObject.Disposed
DisposableObject.Disposing
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
Namespace: Telerik.WinControls.Primitives
Assembly: Telerik.WinControls.dll

Syntax

public class GroupStatePrimitive : BasePrimitive, IDisposable, INotifyPropertyChanged, ICustomTypeDescriptor, ISupportSystemSkin, IStylableNode, IPrimitive
Remarks

The GroupStatePrimitive class provides specialized rendering capabilities for displaying expand/collapse indicators with support for multiple visual styles including Visual Studio 2005 ToolBox and Explorer Bar styles. The primitive automatically adapts its visual representation based on the current state (expanded or collapsed) and the selected panel bar style.

This primitive is typically used as part of larger composite elements in panel bars, accordion controls, and tree view implementations where users need visual feedback about the current state of expandable sections. The primitive supports anti-aliased rendering for smooth visual appearance and provides configurable styling options through the PanelBarStyle property.

Key features include state-based rendering (expanded/collapsed), multiple visual styles (ToolBox/Explorer), anti-aliased graphics for smooth appearance, and integration with the RadProperty system for consistent theming and styling across the framework.

Constructors

GroupStatePrimitive()

Declaration
public GroupStatePrimitive()

Fields

GroupStateProperty

Identifies the State dependency property.

Declaration
public static readonly RadProperty GroupStateProperty
Field Value
RadProperty

Remarks

This property controls whether the group is currently expanded or collapsed, which directly affects the visual representation of the state indicator.

GroupStyleProperty

Identifies the PanelBarStyle dependency property.

Declaration
public static readonly RadProperty GroupStyleProperty
Field Value
RadProperty

Remarks

This property determines the visual style used for rendering the group state indicator, affecting how the expand/collapse visual cues are displayed to the user.

Properties

PanelBarStyle

Gets or sets the visual style for the panel bar group state indicator.

Declaration
[RadPropertyDefaultValue("PanelBarStyle", typeof(GroupStatePrimitive))]
public PanelBarStyles PanelBarStyle { get; set; }
Property Value
PanelBarStyles

A PanelBarStyles enumeration value that determines the visual appearance of the group state indicator. The default value is ExplorerBarStyle.

Remarks

This property controls how the expand/collapse indicator is visually represented:

  • VisualStudio2005ToolBox: Renders simple line-based indicators similar to Visual Studio's toolbox
  • ExplorerBarStyle: Renders filled arrow-shaped indicators with double arrows for enhanced visibility

Changing this property triggers a repaint of the primitive to reflect the new visual style. The style affects both the expanded and collapsed state representations.

State

Gets or sets the current state of the group (expanded or collapsed).

Declaration
[RadPropertyDefaultValue("State", typeof(GroupStatePrimitive))]
public GroupStatePrimitive.GroupState State { get; set; }
Property Value
GroupStatePrimitive.GroupState

A GroupStatePrimitive.GroupState enumeration value indicating whether the group is expanded or collapsed. The default value is Expanded.

Remarks

This property determines the visual representation of the group state indicator:

  • Expanded: Shows collapse indicators (minus signs, down arrows, etc.)
  • Collapsed: Shows expand indicators (plus signs, right arrows, etc.)

The exact visual representation depends on the current PanelBarStyle setting. Changing this property triggers an immediate repaint to show the updated state.

StretchHorizontally

Gets or sets a value indicating whether the primitive should stretch horizontally to fill available space.

Declaration
public override bool StretchHorizontally { get; set; }
Property Value
System.Boolean

false by default. Group state indicators typically maintain fixed width for consistent appearance.

Overrides
RadElement.StretchHorizontally
Remarks

Group state primitives are generally designed to have a fixed size to ensure consistent visual appearance across different container sizes. Setting this to true may cause the indicator to appear distorted.

StretchVertically

Gets or sets a value indicating whether the primitive should stretch vertically to fill available space.

Declaration
public override bool StretchVertically { get; set; }
Property Value
System.Boolean

false by default. Group state indicators typically maintain fixed height for consistent appearance.

Overrides
RadElement.StretchVertically
Remarks

Group state primitives are generally designed to have a fixed size to ensure consistent visual appearance across different container sizes. Setting this to true may cause the indicator to appear distorted.

Methods

InitializeFields()

Initializes the default field values for the group state primitive.

Declaration
protected override void InitializeFields()
Overrides
BasePrimitive.InitializeFields()
Remarks

This method sets up the primitive to have fixed sizing by default, as group state indicators typically have a predetermined size and should not stretch to fill available space. The primitive is configured to maintain its intrinsic dimensions for consistent appearance.

MeasureOverride(SizeF)

Measures the desired size of the group state primitive within the specified available size.

Declaration
protected override SizeF MeasureOverride(SizeF availableSize)
Parameters
System.Drawing.SizeF availableSize

The available size that this primitive can be given.

Returns
System.Drawing.SizeF

The System.Drawing.SizeF representing the desired size of the primitive. Returns a minimum size of 10x10 pixels to ensure the indicator remains visible and interactive.

Overrides
RadElement.MeasureOverride(SizeF)
Remarks

This method ensures that all child elements have their Measure method called during the layout process, then returns a consistent minimum size for the group state indicator. The fixed minimum size ensures that the indicator remains visible and clickable regardless of the available space.

The 10x10 pixel minimum size provides sufficient area for rendering both simple line-based indicators (Visual Studio ToolBox style) and more complex polygon-based indicators (Explorer Bar style) while maintaining good usability for mouse and touch interactions.

PaintPrimitive(IGraphics, Single, SizeF)

Renders the group state indicator using the specified graphics context, applying rotation and scaling transformations.

Declaration
public override void PaintPrimitive(IGraphics graphics, float angle, SizeF scale)
Parameters
IGraphics graphics

The IGraphics interface used for drawing the state indicator.

System.Single angle

The rotation angle in degrees to apply to the rendered content.

System.Drawing.SizeF scale

The scaling factor to apply to the rendered content.

Overrides
BasePrimitive.PaintPrimitive(IGraphics, Single, SizeF)
Remarks

This method renders different visual indicators based on the current PanelBarStyle and State values:

Visual Studio 2005 ToolBox Style:

  • Expanded: Renders a horizontal line across the center
  • Collapsed: Renders both horizontal and vertical lines forming a plus sign

Explorer Bar Style:

  • Expanded: Renders double up-pointing arrow polygons with shadow effect
  • Collapsed: Renders double down-pointing arrow polygons with shadow effect

The method uses anti-aliased rendering for smooth visual appearance and applies the primitive's ForeColor for the main indicator elements.

Extension Methods

CommonExtensions.ClearIfNoBindingAndSet(RadObject, RadProperty)
DispatcherExtensions.CheckAccess(RadObject)
CommonExtensions.SetIfDifferent(RadObject, RadProperty, Object)
CommonExtensions.ClearIfSet(RadObject, RadProperty)
CommonExtensions.IsLocalValueSet(RadObject, RadProperty)
DispatcherExtensions.CheckAccess(RadObject)
DispatcherExtensions.CheckAccess(RadObject)
DispatcherExtensions.CheckAccess(RadObject)
SvgExtentions.Traverse<T>(T, Func<T, IEnumerable<T>>)
SvgExtentions.TraverseDepthFirst<T>(T, Func<T, IEnumerable<T>>)
Getting Started
  • Install Now
  • Demos
  • Step-by-Step Tutorial
  • Sample Applications
  • SDK Samples
  • Visual Studio Extensions
Support Resources
  • Code Library
  • Knowledge Base
  • Videos
Community
  • Forums
  • Blogs
  • Feedback Portal
  • Document Processing Feedback Portal

Copyright © 2018 Progress Software Corporation and/or its subsidiaries or affiliates.
All Rights Reserved.

Progress, Telerik, and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries. See Trademarks for appropriate markings.