Atc.Wpf
2.0.665
dotnet add package Atc.Wpf --version 2.0.665
NuGet\Install-Package Atc.Wpf -Version 2.0.665
<PackageReference Include="Atc.Wpf" Version="2.0.665" />
<PackageVersion Include="Atc.Wpf" Version="2.0.665" />
<PackageReference Include="Atc.Wpf" />
paket add Atc.Wpf --version 2.0.665
#r "nuget: Atc.Wpf, 2.0.665"
#:package Atc.Wpf@2.0.665
#addin nuget:?package=Atc.Wpf&version=2.0.665
#tool nuget:?package=Atc.Wpf&version=2.0.665
ATC.Net WPF
A comprehensive set of modern, enterprise-ready WPF libraries for building professional desktop applications with the MVVM design pattern. This framework provides a rich collection of reusable controls, theming support, font icons, and MVVM infrastructure to accelerate WPF application development.
✨ Key Features
- 🎨 Rich Control Library - 25+ labeled controls, color pickers, selectors, and specialized input controls
- 🌓 Light/Dark Theming - Built-in theme support for all controls with easy customization
- 🎯 MVVM Ready - Complete MVVM infrastructure with observable properties and relay commands
- 🔤 Font Icon Support - Render SVG and image resources based on fonts
- ✅ Smart Validation - Deferred validation pattern for better user experience
- 📐 Advanced Layouts - GridEx, StaggeredPanel, UniformSpacingPanel and more
- 🌍 Localization - Built-in translation and localization support
- 🎭 Value Converters - Extensive collection of XAML value converters
Requirements
- .NET 9 - Desktop Runtime
- Windows 10 or later
NuGet Packages Provided in this Repository
🔎 Demonstration Application
The demonstration application, Atc.Wpf.Sample
, functions as a control explorer.
It provides quick visualization of a given control, along with options for
copying and pasting the XAML markup and/or the C# code for how to use it.
🎈 Playground and Viewer for a Given Control or Functionality
The following example is taken from the ReplayCommandAsync which illustrates its usage:
- The
Sample
tab shows how to use the control or feature. - The
XAML
tab displays the corresponding XAML markup. - The
CodeBehind
tab reveals the underlying code-behind. - The
ViewModel
tab displays the associated ViewModel, if used. - The
Readme
tab displays the associated [control]_Readme.md, if exist.
Sample |
XAML |
CodeBehind |
ViewModel |
🔦 Initial glimpse at the demonstration application
Light-Mode | Dark-Mode |
---|---|
Wpf - AutoGrid |
Wpf - AutoGrid |
Wpf.Controls - Label MIX |
Wpf.Controls - Label MIX |
Wpf.Theming - ImageButton |
Wpf.Theming - ImageButton |
Wpf.FontIcons - Viewer |
Wpf.FontIcons - Viewer |
🚀 Quick Start Guide
Installation
Add the NuGet packages to your .csproj
file:
<ItemGroup>
<PackageReference Include="Atc.Wpf" Version="2.*" />
<PackageReference Include="Atc.Wpf.Controls" Version="2.*" />
<PackageReference Include="Atc.Wpf.FontIcons" Version="2.*" />
<PackageReference Include="Atc.Wpf.Theming" Version="2.*" />
</ItemGroup>
Configuration
1. Update App.xaml
Add the required resource dictionaries to enable theming and control styles:
<Application
x:Class="YourApp.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:atc="https://github.com/atc-net/atc-wpf/tree/main/schemas">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/Atc.Wpf.Theming;component/Styles/Default.xaml" />
<ResourceDictionary Source="pack://application:,,,/Atc.Wpf.Controls;component/Styles/Controls.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
2. Use Controls in XAML
Now you can use all controls with full theming support:
<Window
xmlns:atc="https://github.com/atc-net/atc-wpf/tree/main/schemas"
...>
<atc:LabelTextBox
LabelText="User Name"
Text="{Binding UserName}"
IsMandatory="True" />
<atc:LabelEndpointBox
LabelText="API Endpoint"
NetworkProtocol="Https"
Value="{Binding EndpointUri}" />
<Button Content="Save" Command="{Binding SaveCommand}" />
<TextBox Text="{Binding Notes}" />
</Window>
All standard WPF controls (Button, TextBox, ComboBox, etc.) are automatically styled with Light/Dark theme support.
🎯 Label Controls vs Base Controls
Understanding when to use each type of control:
Aspect | Label Controls | Base Controls |
---|---|---|
Label | Integrated label with text | No label (you provide your own) |
Validation | Built-in validation message display | Validation logic only |
Mandatory | Asterisk indicator support | Not applicable |
Use Case | Standard forms and dialogs | Custom layouts and composite controls |
Example | <atc:LabelTextBox LabelText="Name" Text="{Binding Name}" /> |
<atc:IntegerBox Value="{Binding Count}" /> |
Quick Guideline:
- Use Label Controls for standard forms where you want consistency and less markup
- Use Base Controls when you need custom layouts or are building your own controls
💝 MVVM Made Easy
The Atc.Wpf
package provides a complete MVVM infrastructure that makes it easy to separate UI and business logic using the MVVM pattern.
Key MVVM Features
- Observable Properties - Automatic
INotifyPropertyChanged
implementation - Relay Commands - Simple command implementation with
CanExecute
support - Async Commands - Built-in support for async/await patterns
- Source Generators - Automatic code generation for ViewModels and properties
Learn More
Quick MVVM Example
public partial class MainViewModel : ViewModelBase
{
[ObservableProperty]
private string userName = string.Empty;
[ObservableProperty]
private bool isEnabled = true;
[RelayCommand(CanExecute = nameof(CanSave))]
private async Task SaveAsync()
{
await SaveUserDataAsync(UserName);
}
private bool CanSave() => !string.IsNullOrEmpty(UserName);
}
📚 Comprehensive Documentation
Note: While this README provides an overview, the best way to explore all controls and components is to run the
Atc.Wpf.Sample
application, which includes interactive examples with XAML and code-behind for every control! �
💟 Atc.Wpf - Core WPF Library
The foundation library providing essential WPF controls, layouts, and utilities.
Layout Controls
Modern layout panels for advanced UI composition:
- GridEx - Enhanced Grid with auto-row/column generation
- StaggeredPanel - Masonry-style layout panel
- UniformSpacingPanel - Panel with consistent item spacing
Media Controls
- SvgImage - SVG image rendering control
Helpers & Utilities
- PanelHelper - Helper methods for panel layout calculations
Additional Features
- ShaderEffects - HLSL-based visual effects
- Translation & Localization - Multi-language support
- ValueConverters - Collection of XAML value converters
💟 Atc.Wpf.Controls - Rich Control Library
A comprehensive collection of specialized WPF controls for enterprise applications.
⭐ Label Controls (25+ Controls)
📖 Complete Label Controls Documentation
Labeled input controls with built-in validation, mandatory indicators, and consistent styling:
- Text Input: LabelTextBox, LabelPasswordBox
- Number Input: LabelIntegerBox, LabelDecimalBox, LabelIntegerXyBox, LabelDecimalXyBox, LabelPixelSizeBox
- Date/Time: LabelDatePicker, LabelTimePicker, LabelDateTimePicker
- Selection: LabelCheckBox, LabelComboBox, LabelToggleSwitch
- Selectors: LabelAccentColorSelector, LabelCountrySelector, LabelFontFamilySelector, LabelLanguageSelector, LabelThemeSelector, LabelWellKnownColorSelector
- Pickers: LabelColorPicker, LabelDirectoryPicker, LabelFilePicker
- Network: LabelEndpointBox (protocol + host + port with validation)
- Display: LabelContent, LabelTextInfo
All label controls support:
- ✅ Deferred validation (shows errors only after user interaction)
- ✅ Mandatory field indicators
- ✅ Consistent styling and theming
- ✅ MVVM-friendly data binding
⭐ Base Controls (14 Controls)
📖 Complete Base Controls Documentation
Unlabeled input controls that provide core functionality without the label wrapper:
- Text Input: RichTextBoxEx
- Number Input: IntegerBox, DecimalBox, IntegerXyBox, DecimalXyBox, PixelSizeBox
- Time Selection: ClockPanelPicker
- Toggle: ToggleSwitch
- Pickers: ColorPicker, DirectoryPicker, FilePicker
- Network: EndpointBox (protocol + host + port with validation)
Base controls are perfect for:
- 🎯 Custom layouts where you position labels yourself
- 🧩 Building composite controls
- 📐 Situations where labels are not needed
- 🔨 Creating your own labeled control wrappers
Color Controls
- WellKnownColorPicker - Predefined color palette picker
Additional Resources
- ValueConverters - Control-specific value converters
💟 Atc.Wpf.FontIcons - Font-Based Icons
Render SVG and image resources using font-based icon systems for crisp, scalable icons.
Features
- 🎨 Scalable vector icons
- 🎯 Font-based rendering
- 📦 Multiple icon font support
- 🌈 Color and size customization
Resources
- ValueConverters - Icon-related value converters
💟 Atc.Wpf.Theming - Light & Dark Mode
Complete theming infrastructure with Light and Dark mode support for all WPF controls.
Features
- 🌓 Light/Dark theme switching
- 🎨 Accent color customization
- 🎯 Automatic control styling
- 🔄 Runtime theme changes
- 📱 Consistent visual design
Resources
- ValueConverters - Theme-aware value converters
🎯 Source Generators
Atc.Wpf includes powerful source generators to reduce boilerplate code:
- ViewModel Generator - Auto-generate ViewModels with observable properties
- DependencyProperty Generator - Auto-generate dependency properties
- AttachedProperty Generator - Auto-generate attached properties
🤝 Contributing
We welcome contributions! Please read our guidelines:
- Contribution Guidelines - How to contribute to ATC projects
- Coding Guidelines - Code style and best practices
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
Built with ❤️ by the ATC.Net team and contributors.
- Visit atc-net.github.io for more ATC projects
- Report issues on GitHub Issues
- Contribute on GitHub
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net9.0-windows7.0 is compatible. net10.0-windows was computed. |
-
net9.0-windows7.0
- Atc (>= 2.0.562)
- Atc.XamlToolkit (>= 1.5.62)
- Atc.XamlToolkit.Wpf (>= 1.5.62)
NuGet packages (4)
Showing the top 4 NuGet packages that depend on Atc.Wpf:
Package | Downloads |
---|---|
Atc.Wpf.Controls
A base library for building WPF application. |
|
Atc.Wpf.Theming
A base library for building WPF application with theming. |
|
Atc.Wpf.FontIcons
A base library for building WPF application. |
|
Atc.Wpf.Controls.Sample
A base library for building Sample WPF application. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
2.0.665 | 38 | 10/19/2025 |
2.0.664 | 180 | 10/6/2025 |
2.0.659 | 170 | 10/2/2025 |
2.0.657 | 296 | 9/15/2025 |
2.0.651 | 177 | 7/14/2025 |
2.0.647 | 304 | 5/13/2025 |
2.0.646 | 267 | 5/12/2025 |
2.0.642 | 176 | 5/7/2025 |
2.0.640 | 206 | 5/5/2025 |
2.0.638 | 198 | 5/4/2025 |
2.0.636 | 201 | 4/22/2025 |
2.0.631 | 216 | 4/10/2025 |
2.0.627 | 202 | 4/5/2025 |
2.0.626 | 144 | 4/5/2025 |
2.0.624 | 222 | 4/3/2025 |
2.0.621 | 190 | 4/2/2025 |
2.0.618 | 198 | 4/1/2025 |
2.0.605 | 193 | 3/26/2025 |
2.0.599 | 216 | 3/17/2025 |
2.0.597 | 180 | 3/17/2025 |
2.0.596 | 175 | 3/16/2025 |
2.0.595 | 176 | 3/16/2025 |
2.0.594 | 191 | 3/16/2025 |
2.0.593 | 186 | 3/16/2025 |
2.0.592 | 178 | 3/16/2025 |
2.0.582 | 202 | 2/19/2025 |
2.0.581 | 163 | 2/19/2025 |
2.0.580 | 135 | 2/19/2025 |
2.0.579 | 177 | 2/19/2025 |
2.0.578 | 144 | 2/18/2025 |
2.0.574 | 158 | 2/16/2025 |
2.0.569 | 168 | 2/16/2025 |
2.0.568 | 148 | 2/16/2025 |
2.0.565 | 150 | 2/15/2025 |
2.0.563 | 159 | 2/15/2025 |
2.0.562 | 138 | 2/12/2025 |
2.0.561 | 150 | 2/10/2025 |
2.0.547 | 164 | 2/9/2025 |
2.0.545 | 164 | 2/8/2025 |
2.0.534 | 140 | 2/8/2025 |
2.0.530 | 131 | 1/19/2025 |
2.0.524 | 239 | 6/13/2024 |
2.0.519 | 155 | 6/12/2024 |
2.0.517 | 169 | 6/11/2024 |
2.0.511 | 170 | 6/7/2024 |
2.0.505 | 249 | 4/26/2024 |
2.0.499 | 246 | 4/7/2024 |
2.0.495 | 190 | 3/26/2024 |
2.0.493 | 186 | 3/22/2024 |
2.0.484 | 194 | 3/21/2024 |
2.0.480 | 186 | 3/18/2024 |
2.0.468 | 212 | 3/10/2024 |
2.0.449 | 183 | 3/4/2024 |
2.0.424 | 182 | 2/25/2024 |
2.0.419 | 160 | 2/22/2024 |
2.0.413 | 178 | 2/22/2024 |
2.0.408 | 180 | 2/22/2024 |
2.0.406 | 191 | 2/21/2024 |
2.0.403 | 195 | 2/18/2024 |
2.0.398 | 201 | 2/10/2024 |
2.0.396 | 170 | 2/10/2024 |
2.0.394 | 163 | 2/9/2024 |
2.0.392 | 168 | 2/9/2024 |
2.0.387 | 172 | 2/7/2024 |
2.0.385 | 154 | 1/27/2024 |
2.0.382 | 161 | 1/23/2024 |
2.0.379 | 223 | 1/3/2024 |
2.0.377 | 176 | 1/3/2024 |
2.0.361 | 159 | 12/17/2023 |
2.0.358 | 146 | 12/16/2023 |
2.0.344 | 169 | 12/13/2023 |
2.0.342 | 184 | 12/9/2023 |
2.0.337 | 205 | 12/3/2023 |
2.0.333 | 193 | 12/3/2023 |
2.0.331 | 165 | 11/30/2023 |
2.0.312 | 181 | 11/24/2023 |
2.0.308 | 178 | 11/24/2023 |
2.0.297 | 234 | 11/11/2023 |
2.0.290 | 195 | 11/8/2023 |
2.0.285 | 182 | 11/1/2023 |
2.0.280 | 200 | 10/25/2023 |
2.0.265 | 299 | 9/10/2023 |
2.0.260 | 263 | 8/9/2023 |
2.0.242 | 288 | 7/22/2023 |
2.0.195 | 241 | 7/4/2023 |
2.0.178 | 809 | 11/18/2022 |
2.0.176 | 422 | 11/16/2022 |
2.0.174 | 406 | 11/16/2022 |
2.0.168 | 512 | 11/13/2022 |
2.0.164 | 483 | 11/10/2022 |
2.0.162 | 450 | 11/8/2022 |
2.0.160 | 459 | 11/7/2022 |
2.0.128 | 572 | 10/17/2022 |
2.0.125 | 503 | 10/15/2022 |
2.0.119 | 524 | 10/14/2022 |
2.0.115 | 505 | 10/13/2022 |
2.0.107 | 504 | 10/13/2022 |
2.0.104 | 506 | 10/12/2022 |
2.0.100 | 531 | 10/11/2022 |
2.0.89 | 501 | 10/9/2022 |
2.0.78 | 467 | 10/6/2022 |
2.0.75 | 514 | 10/3/2022 |
2.0.72 | 499 | 10/2/2022 |
2.0.60 | 550 | 9/26/2022 |
2.0.51 | 576 | 9/22/2022 |
2.0.49 | 503 | 9/22/2022 |
2.0.27 | 544 | 9/12/2022 |
2.0.21 | 587 | 8/29/2022 |
2.0.10 | 673 | 2/20/2022 |
1.0.137 | 584 | 11/2/2021 |
1.0.126 | 600 | 4/25/2021 |
1.0.124 | 481 | 4/24/2021 |
1.0.121 | 468 | 4/12/2021 |
1.0.101 | 477 | 4/7/2021 |
1.0.99 | 481 | 4/6/2021 |
1.0.97 | 516 | 4/5/2021 |
1.0.82 | 546 | 3/11/2021 |
1.0.80 | 512 | 3/9/2021 |
1.0.75 | 544 | 3/8/2021 |
1.0.72 | 474 | 3/4/2021 |
1.0.68 | 477 | 3/1/2021 |