Atc.Wpf

A comprehensive set of modern, enterprise-ready WPF libraries for building professional desktop applications with the MVVM design pattern.

Atc.Wpf is a four-tier WPF control library: Atc.Wpf (core) → Atc.Wpf.Controls (atomic controls) → Atc.Wpf.Forms (labelled form fields) → Atc.Wpf.Components (composite components). Plus dedicated packages for theming, font icons, hardware/system pickers, network scanning, and undo/redo.

Get started

Documentation

Section What's inside
📐 Layouts GridEx, AutoGrid, FlexPanel, StaggeredPanel, UniformSpacingPanel, VirtualizingStaggeredPanel
🧱 MVVM ViewModelBase, RelayCommand, source generators via Atc.XamlToolkit
🪄 Source generators [ObservableProperty], [RelayCommand], [DependencyProperty], [AttachedProperty]
🎨 Theming Light / Dark + accent color palette, NiceWindow, themed standard controls
🔤 Font icons FontAwesome 5/7, Material, Octicons, Weather, IcoFont, Bootstrap
📝 Forms 25+ labelled form field controls with deferred validation
🧩 Components Dialogs, viewers, monitoring, notifications, settings panels, zoom browser
📊 Data display Avatar, Badge, Breadcrumb, Card, Carousel, Chip, Divider, Popover, Segmented, Timeline
⌨️ Hotkeys IHotkeyService / HotkeyService: local, global and chord hotkeys
🧭 Navigation Frame / page navigation primitives
🔌 Hardware Serial, USB, camera, audio, Bluetooth, drive, display, printer, network-adapter, process and window pickers with live device state
🎈 Sample app Search / TreeView / TabControl interaction model

The full API reference (auto-generated from XML docs) is in the API Reference tab in the top nav.

Installation

<ItemGroup>
  <PackageReference Include="Atc.Wpf" Version="4.*" />
  <PackageReference Include="Atc.Wpf.Theming" Version="4.*" />
  <PackageReference Include="Atc.Wpf.Forms" Version="4.*" />
  <PackageReference Include="Atc.Wpf.Components" Version="4.*" />
  <PackageReference Include="Atc.Wpf.FontIcons" Version="4.*" />
</ItemGroup>

Building this site locally

This site is generated with DocFX.

dotnet tool install -g docfx
docfx docfx.json --serve

Then open http://localhost:8080.

If you see IOException: ... _site\toc.html ... being used by another process — that's a previous docfx --serve still holding files. Stop it (close the previous terminal or Ctrl+C), delete the _site/ directory, and re-run.

If you see FailedToLoadAnalyzer: Atc.XamlToolkit.SourceGenerators ... ReferencesNewerCompiler — that's expected. DocFX's bundled Roslyn is older than what the source generators target, so generated members ([ObservableProperty], [DependencyProperty], etc.) are missing from API metadata. The site still builds because docfx.json sets allowCompilationErrors: true. Will resolve when DocFX upgrades its bundled Roslyn.

Contributing

See CONTRIBUTING.md, CODE_OF_CONDUCT.md, SECURITY.md.