Skill

wpf

ATC WPF controls library (160+ controls, forms, components, theming) and cross-platform XAML toolkit (MVVM, source generators, behaviors). Use when the user asks to build a WPF desktop application, add WPF controls or forms, implement MVVM with source generators, use ObservableProperty or RelayCommand attributes, create dependency properties, set up Light/Dark theming, add font icons, use layout panels like GridEx or FlexPanel, implement dialogs or flyouts, add toast notifications, work with value converters, implement drag-and-drop, build cross-platform XAML with WinUI 3 or Avalonia, or use the ObservableDtoViewModel generator.

From atc
Install
1
Run in your terminal
$
npx claudepluginhub atc-net/atc-agentic-toolkit --plugin atc
Tool Access

This skill uses the workspace's default tool permissions.

Supporting Assets
View in Repository
references/behaviors-converters.md
references/control-catalog.md
references/layout-panels.md
references/mvvm-infrastructure.md
references/source-generators.md
references/theming-icons.md
Skill Content

ATC WPF & XAML Toolkit

Two complementary libraries for building enterprise-ready desktop applications:

  • Atc.Wpf — 160+ WPF controls, forms, components, theming, and font icons organized in a four-tier architecture
  • Atc.XamlToolkit — Cross-platform MVVM foundation with source generators, behaviors, messaging, and value converters supporting WPF, WinUI 3, and Avalonia

Mental model: Atc.XamlToolkit provides the MVVM engine (ViewModelBase, commands, source generators). Atc.Wpf provides the visual building blocks (controls, forms, components, theming). Use them together for WPF; use Atc.XamlToolkit alone for WinUI 3 or Avalonia.

Detailed reference material lives in the references/ folder — load on demand.


References

ReferenceWhen to load
Control CatalogFull inventory of 160+ controls by category
Source GeneratorsObservableProperty, RelayCommand, DependencyProperty, AttachedProperty, ObservableDtoViewModel, ComputedProperty
Theming & IconsLight/Dark mode, NiceWindow, accent colors, font icon families
MVVM InfrastructureViewModelBase, commands, messaging, validation, services
Behaviors & ConvertersEventToCommand, animation, focus, keyboard navigation, 36+ value converters
Layout PanelsGridEx, FlexPanel, AutoGrid, StaggeredPanel, ResponsivePanel, UniformSpacingPanel

1. Architecture Overview

Four-Tier Control Architecture (Atc.Wpf)

TierPackagePurposeExamples
1. BaseAtc.WpfMVVM, layouts, converters — no UI controlsViewModelBase, GridEx, FlexPanel
2. ControlsAtc.Wpf.ControlsAtomic/primitive controlsIntegerBox, ToggleSwitch, Carousel, ColorPicker
3. FormsAtc.Wpf.Forms25+ labeled form fields with validationLabelTextBox, LabelComboBox, LabelDatePicker
4. ComponentsAtc.Wpf.ComponentsComposite high-level componentsInfoDialogBox, Flyout, JsonViewer, ToastNotification

Additional packages:

PackagePurpose
Atc.Wpf.FontIconsFont-based icon rendering (6 icon families)
Atc.Wpf.ThemingLight/Dark mode theming infrastructure
Atc.Wpf.NetworkNetwork scanning and discovery controls
Atc.Wpf.Controls.SampleControls for building sample/demo applications

Cross-Platform Packages (Atc.XamlToolkit)

PackagePlatformDependencies
Atc.XamlToolkitAllBase: ViewModelBase, ObservableObject, messaging
Atc.XamlToolkit.WpfWPFCommands, behaviors, converters for WPF
Atc.XamlToolkit.WinUIWinUI 3Commands, behaviors, converters for WinUI
Atc.XamlToolkit.AvaloniaAvaloniaCommands, behaviors, converters for Avalonia
Atc.XamlToolkit.SourceGeneratorsAllSource generators (bundled inside Atc.XamlToolkit, not a separate NuGet package)
Atc.XamlToolkit.XamlStylerAllXAML formatting engine

2. Quick Start — WPF Application

Step 1: Install packages

<PackageReference Include="Atc.XamlToolkit.Wpf" Version="*" />
<PackageReference Include="Atc.Wpf.Components" Version="*" />
<PackageReference Include="Atc.Wpf.Theming" Version="*" />

Step 2: Create a ViewModel with source generators

// All source generator attributes ([ObservableProperty], [RelayCommand], [ComputedProperty],
// [DependencyProperty], [AttachedProperty], [RoutedEvent], [ObservableDtoViewModel])
// live in the Atc.XamlToolkit.Mvvm namespace — same as ViewModelBase.
// Do NOT use Atc.XamlToolkit.SourceGenerators.Attributes — that namespace does not exist.
using Atc.XamlToolkit.Mvvm;

public partial class MainViewModel : ViewModelBase
{
    [ObservableProperty]
    private string name = string.Empty;

    [ObservableProperty]
    private int age;

    [RelayCommand]
    private async Task SaveAsync(CancellationToken cancellationToken)
    {
        IsBusy = true;
        // Save logic here
        IsBusy = false;
    }
}

This generates:

  • Name property with INotifyPropertyChanged
  • Age property with INotifyPropertyChanged
  • SaveCommand async command property with cancellation support

Step 3: Use themed window and controls

<theming:NiceWindow x:Class="MyApp.MainWindow"
    xmlns:theming="clr-namespace:Atc.Wpf.Theming.Windows;assembly=Atc.Wpf.Theming"
    xmlns:forms="clr-namespace:Atc.Wpf.Forms.Controls;assembly=Atc.Wpf.Forms"
    xmlns:controls="clr-namespace:Atc.Wpf.Controls.BaseControls;assembly=Atc.Wpf.Controls">

    <StackPanel>
        <forms:LabelTextBox LabelText="Name" Value="{Binding Name}" />
        <forms:LabelIntegerBox LabelText="Age" Value="{Binding Age}" />
        <Button Content="Save" Command="{Binding SaveCommand}" />
    </StackPanel>
</theming:NiceWindow>

3. Source Generators

All generators work at compile time — zero runtime reflection.

AttributePlatformGenerates
[ObservableProperty]WPF, WinUI, AvaloniaProperty with INotifyPropertyChanged
[ComputedProperty]WPF, WinUI, AvaloniaProperty with auto-detected dependencies
[RelayCommand]WPF, WinUI, AvaloniaIRelayCommand property from method
[DependencyProperty]WPF, WinUIDependencyProperty registration
[StyledProperty]AvaloniaStyledProperty registration
[AttachedProperty]WPF, WinUI, AvaloniaAttached property with Get/Set methods
[RoutedEvent]WPF onlyRoutedEvent with EventManager registration
[ObservableDtoViewModel]WPF, WinUI, AvaloniaViewModel wrapper with IsDirty tracking

RelayCommand with Cancellation

[RelayCommand(SupportsCancellation = true)]
private async Task LoadDataAsync(CancellationToken cancellationToken)
{
    // Long-running operation
}

Generates: LoadDataCommand, LoadDataCancelCommand, and CancelLoadData() method.

ObservableDtoViewModel

[ObservableDtoViewModel(typeof(PersonDto))]
public partial class PersonViewModel : ViewModelBase { }

Generates a full ViewModel wrapping PersonDto with:

  • All properties with change notification
  • IsDirty tracking
  • InnerModel access to the underlying DTO
  • Method proxies
  • Validation attribute copying

See Source Generators for all options and platform-specific details.


4. Controls Quick Reference

Input Controls

NumericBox, IntegerBox, DecimalBox, CurrencyBox, ToggleSwitch, RangeSlider, Rating, FilePicker, DirectoryPicker

Buttons

ImageButton, SplitButton, AuthenticationButton, ConnectivityButton

Color Controls

HueSlider, SaturationBrightnessPicker, TransparencySlider, WellKnownColorPicker

Data Display

Alert, Card, Badge, Chip, Avatar, AvatarGroup, Divider, Carousel, Breadcrumb, Stepper, Segmented, Timeline, Popover

Layout Panels

GridEx, AutoGrid, FlexPanel, StaggeredPanel, UniformSpacingPanel, ResponsivePanel, DockPanelPro

Selectors

CountrySelector, LanguageSelector, FontFamilySelector, DualListSelector

Progress & Loading

BusyOverlay, LoadingIndicator, Overlay, Skeleton

25+ Labeled Form Controls

LabelTextBox, LabelIntegerBox, LabelDecimalBox, LabelComboBox, LabelDatePicker, LabelColorPicker, LabelToggleSwitch, LabelFilePicker, LabelDirectoryPicker, and more — each with built-in label, validation, and consistent styling.

Composite Components

InfoDialogBox, QuestionDialogBox, InputDialogBox, InputFormDialogBox, ColorPickerDialogBox, BasicApplicationSettingsDialogBox, Flyout, FlyoutHost, JsonViewer, TerminalViewer, ToastNotification, PrintPreviewWindow, UndoRedoHistoryView

See Control Catalog for the full inventory.


5. Theming

NiceWindow — themed window replacement with built-in title bar, minimize/maximize/close buttons, Light/Dark mode support:

<theming:NiceWindow x:Class="MyApp.MainWindow" ... >

ThemeSelector — built-in control for switching themes:

<theming:ThemeSelector />

AccentColorSelector — pick accent color:

<theming:AccentColorSelector />

See Theming & Icons.


6. Font Icons

Six icon families available via Atc.Wpf.FontIcons:

FamilyVariantsGlyphs
FontAwesome 5Regular, Solid, Brands1,600+
FontAwesome 7Regular, Solid, Brands2,000+
Bootstrap Icons1,800+
Material Design2,100+
Weather Icons200+
IcoFont2,100+

Usage in XAML:

<fontIcons:FontIcon IconType="FontAwesome5Solid" IconName="fa-check" FontSize="16" />

7. MVVM Infrastructure

ViewModelBase Built-in Properties

PropertyTypePurpose
IsEnableboolEnable/disable state
IsVisibleboolVisibility state
IsBusyboolLoading/processing state
IsDirtyboolChange tracking
IsSelectedboolSelection state

Commands

TypeAsyncCancellation
RelayCommandNoNo
RelayCommand<T>NoNo
RelayCommandAsyncYesYes
RelayCommandAsync<T>YesYes

Messaging System

// Send
Messenger.Default.Send(new GenericMessage<string>("Hello"));

// Receive
Messenger.Default.Register<GenericMessage<string>>(this, msg => { ... });

Message types: GenericMessage<T>, NotificationMessage, PropertyChangedMessage<T>, NotificationMessageAction.

Services

ServiceInterfacePurpose
ClipboardIClipboardServiceClipboard operations
UndoRedoIUndoRedoServiceUndo/redo stack
HotkeysIHotkeyServiceGlobal hotkey registration
NavigationINavigationServicePage/view navigation
PrintingIPrintServicePrint and preview
ToastIToastNotificationServiceToast notifications
CaptureICaptureServiceScreen capture
BusyIndicatorIBusyIndicatorServiceGlobal busy state

See MVVM Infrastructure.


8. Behaviors

Cross-platform behaviors (WPF, WinUI 3, Avalonia):

BehaviorPurpose
EventToCommandBehaviorExecute commands from any UI event
AnimationBehaviorFadeIn/Out, SlideIn, ScaleIn/Out (8 types)
FocusBehaviorInitial focus, two-way bindable, select-all-on-focus
KeyboardNavigationBehaviorArrow keys, Enter, Escape, Tab navigation

36+ Value Converters

Bool converters, string converters, null converters, visibility converters, and multi-value converters. See Behaviors & Converters.


9. Network Scanning

Atc.Wpf.Network provides a NetworkScannerView control for IP scanning, port scanning, and device discovery. Requires Atc.Network package.


10. Requirements

RequirementVersion
.NET SDK10.0+
Runtime.NET 10 Desktop Runtime (WPF)
OSWindows 10 or later
C#14.0
Stats
Parent Repo Stars0
Parent Repo Forks1
Last CommitMar 19, 2026