Overview

The BeepListBox supports 42 visual painter styles, making it one of the most versatile controls in the library. Each painter handles background, item rendering, selection indication, hover effects, and accessibility contrast modes.

Painters implement IListBoxPainter or extend BaseListBoxPainter. Selection resolves via ListBoxPainterFactory.

Architecture

IListBoxPainter
  └── BaseListBoxPainter (abstract)
       ├── StandardListBoxPainter
       ├── FilledListBoxPainter
       ├── OutlinedListBoxPainter
       ├── CardListPainter
       ├── CustomListPainter
       └── ... (42 total)

ListBoxPainterFactory.Get(ListBoxType)
  → IListBoxPainter

Painter Categories (42 Total)

Standard Styles (10)

StandardListBoxPainter, SimpleListPainter, OutlinedListBoxPainter, FilledListBoxPainter, FilledStylePainter, MinimalListBoxPainter, CompactListPainter, RoundedListBoxPainter, BorderlessListBoxPainter, MaterialOutlinedListBoxPainter

Card & Content Styles (8)

CardListPainter, GradientCardListBoxPainter, GlassmorphismListBoxPainter, HeroUIListBoxPainter, NeumorphicListBoxPainter, RekaUIListBoxPainter, ChakraUIListBoxPainter, CommandListBoxPainter

Specialized Item Styles (10)

AvatarListBoxPainter, ChatListBoxPainter, NotificationListBoxPainter, TimelineListBoxPainter, ThreeLineListBoxPainter, ProfileCardListBoxPainter, ContactListBoxPainter, TeamMembersPainter, WithIconsListBoxPainter, ChipStyleListBoxPainter

Behavior Styles (6)

SearchableListPainter, GroupedListPainter, CheckboxListPainter, RadioSelectionPainter, MultiSelectionTealPainter, InfiniteScrollListBoxPainter

Selection & State Styles (5)

ColoredSelectionPainter, LanguageSelectorPainter, CategoryChipsPainter, FilterStatusPainter, ErrorStatesPainter

Checkbox Variants (3)

CheckboxListPainter, RaisedCheckboxesPainter, OutlinedCheckboxesPainter

Navigation

NavigationRailListBoxPainter

Examples

var listBox = new BeepListBox();

// Set visual style
listBox.ItemStyle = ListBoxType.CardList;
// → CardListPainter renders each item as a card

listBox.ItemStyle = ListBoxType.ChatList;
// → ChatListBoxPainter adds avatar + message preview

listBox.ItemStyle = ListBoxType.GroupedList;
// → GroupedListPainter renders section headers

// Add items
listBox.Items.Add(new BeepListItem
{
    Text = "John Doe",
    SubText = "Online",
    ImagePath = "avatars/john.png"
});