Assembly: TheTechIdea.Beep.WPF.Controls  ·  XAML namespace: xmlns:beep="clr-namespace:TheTechIdea.Beep.WPF.Controls;assembly=TheTechIdea.Beep.WPF.Controls"

What this library is

Beep.WPF Controls is a large set of Beep* controls (~90) that each derive the matching native WPF primitive (Button, TextBox, ComboBox, ListBox, TreeView, DataGrid, …) and layer on a consistent chrome, theming and skinning system. It was deliberately re-architected away from a heavy BaseControl-based WinForms port into a native-primitive base + capability-interface + XAML-template model.

The four pillars.
  • No BaseControl — every control derives its native WPF primitive.
  • No code-built visual tree — chrome lives in XAML ControlTemplates.
  • Chrome via DynamicResource — colours/paddings/radii come from tokens, never hardcoded.
  • Skins are the theme — one keyed style per control per design system (Material3, Fluent, Apple, Dracula, …).

Design principles

  • Capability interfaces — a control implements only what it needs (IBeepThemeable, IBeepIconHost, IBeepValidatable). See Capability Interfaces.
  • Chrome tokens — BeepChrome attached properties (ControlStyle, Theme) + DynamicResource tokens drive the look. See Chrome, Skins & Themes.
  • Icons by name — set a string DP (LeadingIcon="fi-tr-search"); BeepImage resolves embedded SVG / pack URI / file / path-geometry. See Icons & BeepImage.
  • Lists use SimpleItem — every list/menu control exposes ListItems of SimpleItem and renders rows via BeepListItem. See SimpleItem & List Controls.

Quick start

Reference the namespace and drop a control in. Set ControlStyle once at the window root — it is an inherited attached property, so every control below re-skins automatically.

<Window xmlns:beep="clr-namespace:TheTechIdea.Beep.WPF.Controls;assembly=TheTechIdea.Beep.WPF.Controls"
        beep:BeepChrome.ControlStyle="Dracula">
    <StackPanel Margin="16">
        <beep:BeepLabel Text="Sign in" FontSize="18"/>
        <beep:BeepTextBox PlaceholderText="Email" LeadingIcon="fi-tr-envelope"/>
        <beep:BeepPasswordBox PlaceholderText="Password"/>
        <beep:BeepButton Text="Continue"/>
    </StackPanel>
</Window>

Switch skins app-wide through the single authority:

// TheTechIdea.Beep.WPF.Controls.ThemeManagement
WpfThemesManager.ApplyStyle(BeepControlStyle.Material3);

Documentation map

AreaPage
Control architecture & contractControl Architecture
Chrome tokens, skins, themes, semantic brushesChrome, Skins & Themes
IBeepThemeable / IBeepIconHost / IBeepValidatable / BeepChromeCapability Interfaces
BeepImage & the icon formatsIcons & BeepImage
SimpleItem, ListItems, BeepListItem, draw-mode variantsSimpleItem & List Controls
Buttons & togglesButtons
Text inputsText Inputs
Selection inputsSelection Inputs
Date & time pickersDate & Time
Lists & collectionsLists & Collections
Data controls (grid, tree, navigators)Data Controls
Menus, toolbars, tabs, breadcrumbsMenus & Navigation
Panels, cards, containers, windowsLayout & Containers
Progress, badges, notifications, overlaysFeedback & Overlays
Stat/feature/project cards & rich widgetsCards & Widgets