Vue d'ensemble des contrôles Mosaic UI pour WPF

VérifiéSûr

Vue d'ensemble de tous les contrôles Mosaic UI pour WPF. À utiliser lors de l'implémentation d'un contrôle, de la recherche de propriétés/événements ou du choix du bon contrôle pour un besoin d'interface utilisateur.

Spar Skills Guide Bot
DeveloppementIntermédiaire
27/07/2026
Claude Code
#wpf#xaml#ui-controls#dotnet#control-reference

Recommandé pour

Synthèse automatique

Fournit un inventaire classé des contrôles Mosaic UI pour WPF, avec classes de base, espaces de noms et liens vers la documentation détaillée de chaque contrôle.

Points forts

  • Classe de nombreux contrôles par catégorie (saisie, affichage, mise en page, média, navigation, données) avec classe de base et objectif en une ligne.
  • Précise les espaces de noms XAML canonique, CLR et spéciaux, notamment VT52Terminal, waveform, AvalonDock et les jetons de thème.
  • Renvoie à des fichiers dédiés par contrôle pour les propriétés, événements et exemples, au lieu de tout dupliquer dans la vue d'ensemble.
  • Couvre l'utilisation de contrôles WPF lookless et sensibles au thème via des jetons DynamicResource.

Limites

  • Il s'agit d'un index/vue d'ensemble, pas d'une référence API complète ; les propriétés et événements détaillés se trouvent dans des fichiers liés qui peuvent ne pas être chargés.
  • Suppose que le projet WPF référence déjà Mosaic.UI.Wpf et que le lecteur maîtrise XAML.
  • Ne fournit pas d'aide à la migration, au dépannage ou à la conception au-delà du choix des contrôles.
Quand l'utiliser

À utiliser lorsqu'il faut trouver, choisir ou commencer à implémenter un contrôle Mosaic UI pour WPF et connaître son espace de noms ou son point d'entrée documentaire.

Quand l'éviter

À ne pas utiliser si le projet n'est pas basé sur Mosaic.UI.Wpf, ou s'il faut des conseils généraux sur WPF/XAML sans rapport avec cette bibliothèque.

Analyse de sécurité

Sûr
Score qualité82/100

This is pure reference documentation for a WPF control library: namespace declarations, a control/behavior inventory, theme-token examples, and setup tips. It declares no tools, runs no code, and contains no scripts, network calls, credential handling, or destructive instructions. The only external references are XAML namespace URIs and a GitHub repo used for schema identification, which is normal for a UI library.

Aucun point d'attention détecté

Comment cette analyse est faite

Exemples

Find a searchable input control
Which Mosaic UI for WPF control should I use for a searchable dropdown with async results, and how do I reference it in XAML?
Add a themed accent button
Show me how to add an AccentButton to my WPF view using the Mosaic.UI.Wpf namespace and theme tokens.
Look up VT52Terminal namespace
I need to use the VT52Terminal control in a Mosaic UI WPF app; which XAML namespace should I declare and where is its control documentation?

name: mosaic-controls description: "Overview of all Mosaic UI for WPF controls. Use when: implementing a control, looking up properties/events, asking what controls exist, choosing the right control for a UI requirement." argument-hint: "Optional: name of a specific control to focus on (e.g. 'ToggleSwitch', 'AutoCompleteBox')"

Mosaic UI for WPF — Control Overview

Mosaic UI for WPF (Mosaic.UI.Wpf) is a lookless, theme-aware WPF control library. Controls are consumed via the canonical XML namespace:

xmlns:mosaic="http://schemas.apexgate.net/wpf/mosaic-ui"

or the CLR form:

xmlns:mosaic="clr-namespace:Mosaic.UI.Wpf.Controls;assembly=Mosaic.UI.Wpf"

The VT52Terminal control requires the sub-namespace:

xmlns:vt52="clr-namespace:Mosaic.UI.Wpf.Controls.VT52Terminal;assembly=Mosaic.UI.Wpf"

The waveform visualizer controls are also mapped to the canonical URI, or can be referenced with:

xmlns:waveform="clr-namespace:Mosaic.UI.Wpf.Controls.WaveformVisualizer;assembly=Mosaic.UI.Wpf"

AvalonDock is shipped as a separate package/project and uses its own XAML URI:

xmlns:ad="https://github.com/blakepell/MosaicUIWpf"

For theme tokens (brushes, font sizes, etc.), declare:

xmlns:themes="http://schemas.apexgate.net/wpf/mosaic-ui"

and reference tokens like {DynamicResource {x:Static themes:MosaicTheme.ControlTextForegroundBrush}}.


Control Inventory

For detailed property/event/example documentation, read the individual file listed in the Details column.

| Control | Base Class | Category | Description | Details | |---|---|---|---|---| | AccentButton | Button | Input | Button with built-in accent color variants | AccentButton.md | | AdaptiveImage | Image | Media | Pixel-level HSL theme adaptation for images (light/dark mode) | AdaptiveImage.md | | AsteriskTextBlock | Control | Display | Displays masked text with a configurable mask character (default: ●) | AsteriskTextBlock.md | | AudioPlayer | Control | Media | Audio transport control with playlist, seek slider, playback events, and MediaPlayer backing | AudioPlayer.md | | AudioPlayerSpectrumAnalyzer | FrameworkElement | Media | WASAPI loopback spectrum analyzer intended to pair with AudioPlayer | AudioPlayer.md | | AutoCompleteBox | Control | Input | Searchable autocomplete combo box with async provider support | AutoCompleteBox.md | | Avatar | Button | Display | User avatar with image source or fallback initials | Avatar.md | | Badge | ContentControl | Display | Small inline status/count badge | Badge.md | | BindablePasswordBox | ContentControl | Input | Password field with a bindable Password string property | BindablePasswordBox.md | | ContentPanel | ContentControl | Layout | Themed content container with header, footer, separator, and corner styling | ContentPanel.md | | ChatThread | UserControl | Data | Chat conversation view with sent/received message templates | ChatThread.md | | CheckBoxList | ListBox | Input | Multi-select list that shows checkboxes beside each item | CheckBoxList.md | | ClipBorder | Border | Layout | Border that clips child content to its CornerRadius | ClipBorder.md | | ColorPicker | UserControl | Input | Visual color picker with hex input and preset colors | ColorPicker.md | | DatePicker | Control | Input | Mosaic date picker with popup month calendar and nullable selected date | DatePicker.md | | DocumentContainer | TabControl | Navigation | Closable, reorderable document tabs with active-document tracking | DocumentContainer.md | | EditableTextBlock | Control | Input | Inline editable text that toggles between view/edit mode | EditableTextBlock.md | | FavoriteCheckBox | CheckBox | Input | Symbol-based favorite/star toggle with configurable brushes | FavoriteCheckBox.md | | FileDropper | Control | Input | File drag-and-drop target with file type validation and command/event hooks | FileDropper.md | | Files | Control | Data | Directory file list with shell icons, sorting, selection, watcher refresh, and activation event | Files.md | | FlipPanel | ContentControl | Display | Animated flip panel with front and back content faces | FlipPanel.md | | GravatarImage | Image | Media | Loads and displays a Gravatar avatar from an email address | GravatarImage.md | | HexColorTextBox | ComboBox | Input | Editable hex color field (#RGB, #RRGGBB, #AARRGGBB) with shade drop-down | HexColorTextBox.md | | Hyperlink | ContentControl | Navigation | Clickable link that opens a URI or executes an ICommand | Hyperlink.md | | InertiaScrollViewer | ScrollViewer | Layout | ScrollViewer with animated inertia/momentum on mouse wheel | InertiaScrollViewer.md | | InfoCard | ContentControl | Display | Card with animated accent bar, title, header, body, and footer | InfoCard.md | | InputWaveformVisualizer | WaveformVisualizerBase | Media | Live waveform from a selectable Windows audio input device | WaveformVisualizer.md | | LabeledSeparator | ContentControl | Display | Horizontal separator with an embedded text label | LabeledSeparator.md | | LoopbackWaveformVisualizer | WaveformVisualizerBase | Media | Live waveform from the default Windows audio render device via WASAPI loopback | WaveformVisualizer.md | | MarkdownEditor | UserControl | Input | Markdown editor built on SyntaxEditor with toolbar, snippets, save helpers, and preview/copy actions | MarkdownEditor.md | | MarkdownViewer | Control | Display | WPF-native Markdown renderer backed by a copyable FlowDocument/RichTextBox | MarkdownViewer.md | | MessageBox | static class | Dialog | Themed drop-in replacement for System.Windows.MessageBox Show overloads | MessageBox.md | | NumericTextBox | TextBox | Input | Text box that accepts only numeric input with configurable decimal places | NumericTextBox.md | | ProgressRing | Control | Display | Indeterminate animated ring/spinner controlled by IsActive | ProgressRing.md | | PropertyGrid | Control | Data | Object property inspector using TypeDescriptor with category grouping | PropertyGrid.md | | RadialProgressBar | ProgressBar | Display | Circular progress bar with fill, pie, shape, and indeterminate modes | RadialProgressBar.md | | RelativePanel | Panel | Layout | Arranges children relative to each other via attached properties | RelativePanel.md | | ScalingTextBlock | TextBlock | Display | TextBlock that automatically lowers font size to fit available width | ScalingTextBlock.md | | SearchBox | TextBox | Input | Text box with watermark, clear button, and SearchExecuted event | SearchBox.md | | SettingsItem | ContentControl | Display | Settings row with icon, title, description, and slot for a control | SettingsItem.md | | ShadowPanel | ContentControl | Layout | Content container with configurable drop shadow effect | ShadowPanel.md | | ShadowTextBlock | TextBlock | Display | TextBlock with automatically applied drop shadow | ShadowTextBlock.md | | Shield | Control | Display | GitHub-style shield/badge with label and value sections | Shield.md | | SideMenu | UserControl | Navigation | Collapsible navigation side menu with search and drag-drop reorder | SideMenu.md | | SimpleStackPanel | Panel | Layout | Efficient stack panel with uniform Spacing between children | SimpleStackPanel.md | | SmallPanel | Panel | Layout | Overlay panel that stacks children in the same bounds | SmallPanel.md | | SplitButton | ContentControl | Input | Button with a separate drop-down chevron that opens a ContextMenu | SplitButton.md | | SplitPanel | Control | Layout | Two-pane resizable container with a draggable GridSplitter and bindable split ratio | SplitPanel.md | | StopwatchDisplay | ContentControl | Display | Real-time stopwatch with Start/Stop/Reset methods | StopwatchDisplay.md | | StringListEditor | ContentControl | Input | Editable list of strings with add/remove and duplicate/validation support | StringListEditor.md | | SymbolRating | Control | Input | Star/symbol rating control with hover preview and deselect | SymbolRating.md | | SyntaxEditor | TextEditor | Input | AvalonEdit-based code editor with Mosaic themes, bundled syntax highlighting, search, JSON commands, and line editing commands | SyntaxEditor.md | | TabControl | TabControl | Navigation | Mosaic-themed tab control with top/bottom active indicator | TabControl.md | | TagBox | Control | Input | Token/tag entry box with removable chips, duplicate control, and cancellable change events | TagBox.md | | ToggleButton | ToggleButton | Input | Mosaic-themed toggle button with checked/unchecked background | ToggleButton.md | | ToggleSwitch | Control | Input | Mobile-style on/off toggle switch with custom colors and MVVM | ToggleSwitch.md | | TwoPaneView | Control | Layout | Adaptive two-pane layout (side-by-side or stacked) | TwoPaneView.md | | ValidationSummaryPanel | ItemsControl | Data | Validation error collector and display panel with auto-hide | ValidationSummaryPanel.md | | VersionTextBlock | TextBlock | Display | Displays version string from a configurable assembly source | VersionTextBlock.md | | VT52Terminal | TextEditor | Terminal | Full ANSI/VT100/VT220/xterm terminal emulator (AvalonEdit-based) | VT52Terminal.md | | WindowTitleBar | UserControl | Windowing | Custom Mosaic window title bar with min/max/close and custom content slots | WindowTitleBar.md |


Behaviors

Behaviors live in the Mosaic.UI.Wpf.Behaviors namespace and add functionality to existing WPF controls without subclassing them — reach for one before authoring a new control. Most are Behavior<T> (attached inside <i:Interaction.Behaviors>); GridViewSortBehavior, WindowChromeBehavior, and BrushModifier are attached-property helpers (applied as behaviors:Foo.Bar="..."). The namespace is also mapped to the canonical Mosaic URI, so mosaic:-prefixed usage works too. See Behaviors.md for full property/usage details.

xmlns:behaviors="clr-namespace:Mosaic.UI.Wpf.Behaviors;assembly=Mosaic.UI.Wpf"
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"

| Behavior | Attaches to | Description | Details | |---|---|---|---| | FocusBehavior | Control | Focuses the control when it loads | Behaviors.md | | BlinkingBehavior | FrameworkElement | Blinks an element by animating its opacity | Behaviors.md | | FrameworkElementZoomFontSizeOnMouseWheelBehavior | FrameworkElement | Ctrl+MouseWheel font-size zoom (clamped min/max) | Behaviors.md | | BrushModifier | Control/Border/Panel | Lightens/darkens the background brush by an HSL percentage | Behaviors.md | | TextBoxCopyBehavior | Button | Copies a target TextBox's (selected) text to the clipboard on click | Behaviors.md | | TextBoxClearTextOnEscapeBehavior | TextBoxBase | Clears the text box when Escape is pressed | Behaviors.md | | BlockCaretBehavior | TextBox | Terminal-style full-width block caret | Behaviors.md | | ItemsControlAutoScrollBehavior | ItemsControl | Auto-scrolls to the newest item when the collection changes | Behaviors.md | | ItemsControlFilterBehavior | TextBox | Debounced text filter over a target ItemsControl | Behaviors.md | | DataGridFilterBehavior | TextBox | Debounced full-text filter over a target DataGrid | Behaviors.md | | DataGridLastColumnFillBehavior | DataGrid | Stretches the last column to fill remaining width | Behaviors.md | | GridViewLastColumnFillBehavior | ListView | Auto-sizes the last GridView column | Behaviors.md | | GridViewSortBehavior | ListView/GridViewColumn | Click-header sorting for a GridView | Behaviors.md | | ListViewDeleteBehavior | ListView | Deletes selected items on the Delete key (optional confirm) | Behaviors.md | | OpenContextMenuBehavior | ButtonBase | Opens the button's ContextMenu on click | Behaviors.md | | OpenWindowBehavior | ButtonBase/MenuItem | Opens a Window of a given type on click (modal/modeless) | Behaviors.md | | CloseWindowOnEscapeBehavior | Window | Closes the window on Escape | Behaviors.md | | WindowChromeBehavior | Window | Custom borderless chrome, themed brushes, rounded corners | Behaviors.md | | AvalonTextEditorBindingBehavior | AvalonEdit TextEditor | Bindable text, selection, selected text, and caret offset | AvalonEditBehaviors.md | | AvalonEditPropertiesBehavior | AvalonEdit TextEditor | Binds caret brush and hyperlink enablement | AvalonEditBehaviors.md | | AvalonEditVtTerminalBehavior | AvalonEdit TextEditor | Applies a retro VT/CRT visual skin | AvalonEditBehaviors.md | | AvalonEditCopyBehavior | Button | Copies a target TextEditor's (selected) text to the clipboard on click | AvalonEditBehaviors.md |

File name ≠ class name for four behaviors: AvalonEditBindingBehavior.cs → AvalonTextEditorBindingBehavior, TextBoxClearOnEscapeBehavior.cs → TextBoxClearTextOnEscapeBehavior, CloseWindowOnEscape.cs → CloseWindowOnEscapeBehavior, ButtonOpenContextMenu.cs → OpenContextMenuBehavior. Use the class name in XAML.

Integration Packages

These are not main-assembly controls, but are part of the Mosaic usage surface and have demo examples.

| Item | Kind | Namespace / URI | Description | Details | |---|---|---|---|---| | DockingManager / MosaicTheme | Separate package/project | https://github.com/blakepell/MosaicUIWpf | Mosaic-themed AvalonDock fork/integration for IDE-style document and tool-window docking | AvalonDock.md |

Support Controls

These public controls exist for native style dictionaries and low-level template composition. Prefer the higher-level controls in the main inventory unless you are editing Mosaic's native styles or need this exact primitive.

| Control | Base Class | Primary Use | Details | |---|---|---|---| | SliderRepeatButton | RepeatButton | Slider track repeat buttons with corner orientation metadata | SupportControls.md | | SystemDropShadowChrome | Decorator | WPF-style chrome shadow rendering for popups and native templates | SupportControls.md | | WDScrollViewer | ScrollViewer | Native TreeView template scrolling with optional wheel animation | SupportControls.md |


Theme Tokens

Reference theme brushes via DynamicResource using MosaicTheme static keys:

xmlns:themes="http://schemas.apexgate.net/wpf/mosaic-ui"

<!-- Foreground / background -->
Foreground="{DynamicResource {x:Static themes:MosaicTheme.ControlTextForegroundBrush}}"
Background="{DynamicResource {x:Static themes:MosaicTheme.ControlBackgroundBrush}}"

<!-- Border -->
BorderBrush="{DynamicResource {x:Static themes:MosaicTheme.ControlBorderBrush}}"

<!-- Accent / status -->
Fill="{DynamicResource {x:Static themes:MosaicTheme.AccentBrush}}"
Fill="{DynamicResource {x:Static themes:MosaicTheme.SuccessBrush}}"
Fill="{DynamicResource {x:Static themes:MosaicTheme.WarningBrush}}"
Fill="{DynamicResource {x:Static themes:MosaicTheme.ErrorBrush}}"
Fill="{DynamicResource {x:Static themes:MosaicTheme.InfoBrush}}"

<!-- Font sizes -->
FontSize="{DynamicResource {x:Static themes:MosaicTheme.FontSizeSmall}}"
FontSize="{DynamicResource {x:Static themes:MosaicTheme.FontSizeMedium}}"
FontSize="{DynamicResource {x:Static themes:MosaicTheme.FontSizeLarge}}"

App Setup

Consumer apps wire Mosaic by:

  1. Using MosaicApp<TSettings, TViewModel> as the Application base in App.xaml.
  2. Merging a ThemeManager into application resources.
  3. Placing mosaic:WindowTitleBar + WindowChromeBehavior in MainWindow.

See the mosaic-setup-project skill for the full wiring procedure.


Quick Tips

  • Always use DynamicResource for theme tokens — switching themes requires live updates.
  • CustomControls (most controls) support re-templating; UserControl-based controls (ColorPicker, ChatThread, MarkdownEditor, SideMenu, WindowTitleBar) do not.
  • VT52Terminal requires the separate sub-namespace Mosaic.UI.Wpf.Controls.VT52Terminal.
  • InputWaveformVisualizer and LoopbackWaveformVisualizer live in Mosaic.UI.Wpf.Controls.WaveformVisualizer, but are mapped to the canonical Mosaic XAML URI.
  • AvalonDock lives in Mosaic.UI.Wpf.AvalonDock / package MosaicUIWpf.AvalonDock and uses xmlns:ad="https://github.com/blakepell/MosaicUIWpf".
  • AdaptiveImage requires ThemeManager in the DI container (AppServices).
  • PropertyGrid reads [Category], [Description], and [PropertyGridAttribute] attributes on the target object.
  • SideMenu uses ContentTypeIsSingleton + AppServices DI for singleton view navigation in the demo.
  • Public support controls such as WDScrollViewer, SliderRepeatButton, and SystemDropShadowChrome are primarily used by native theme dictionaries; see SupportControls.md.

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/mosaic-ui-for-wpf-controls-overview-ms2s7bcs/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/mosaic-ui-for-wpf-controls-overview-ms2s7bcs' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/mosaic-ui-for-wpf-controls-overview-ms2s7bcs/download' --output '.skill-downloads/mosaic-ui-for-wpf-controls-overview-ms2s7bcs/SKILL.md.part' && mv '.skill-downloads/mosaic-ui-for-wpf-controls-overview-ms2s7bcs/SKILL.md.part' '.skill-downloads/mosaic-ui-for-wpf-controls-overview-ms2s7bcs/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/mosaic-ui-for-wpf-controls-overview-ms2s7bcs/SKILL.md' && test -s '.skill-downloads/mosaic-ui-for-wpf-controls-overview-ms2s7bcs/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/mosaic-controls' && cp -R '.skill-downloads/mosaic-ui-for-wpf-controls-overview-ms2s7bcs' '.claude/skills/mosaic-controls'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/mosaic-ui-for-wpf-controls-overview-ms2s7bcs'

openskills read 'mosaic-ui-for-wpf-controls-overview-ms2s7bcs'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/mosaic-ui-for-wpf-controls-overview-ms2s7bcs/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires