Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
managedcode avatar

Winui

  • 19 installs
  • 466 repo stars
  • Updated July 25, 2026
  • managedcode/dotnet-skills

Helps with ai & agent building tasks.

About

winui is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.

  • winui
  • AI & Agent Building
  • AI-coding skill

Winui by the numbers

  • 19 all-time installs (skills.sh)
  • +1 installs in the week ending Aug 2, 2026 (Skillselion tracking)
  • Ranked #10,571 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/managedcode/dotnet-skills --skill winui

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs19
repo stars466
Last updatedJuly 25, 2026
Repositorymanagedcode/dotnet-skills

What it does

Helps with ai & agent building tasks.

Files

SKILL.mdMarkdownGitHub ↗

WinUI 3 and Windows App SDK

Trigger On

  • building native modern Windows desktop UI on WinUI 3
  • integrating Windows App SDK features into a .NET app
  • deciding between WinUI, WPF, WinForms, and MAUI for Windows work
  • implementing MVVM patterns in Windows App SDK applications

Workflow

1. Confirm WinUI is the right choice — use when modern Windows-native UI, Fluent Design, and Windows App SDK capabilities are needed. For cross-platform, consider MAUI instead. 2. Choose packaging model early — packaged (MSIX) vs unpackaged differ materially for deployment, identity, and API access:

   <!-- Unpackaged: add to .csproj -->
   <WindowsPackageType>None</WindowsPackageType>

3. Apply MVVM pattern with the MVVM Toolkit — keep views dumb, logic in ViewModels:

   public partial class ProductsViewModel : ObservableObject
   {
       [ObservableProperty]
       private ObservableCollection<Product> _products = [];

       [ObservableProperty]
       [NotifyCanExecuteChangedFor(nameof(DeleteCommand))]
       private Product? _selectedProduct;

       [RelayCommand(CanExecute = nameof(CanDelete))]
       private async Task DeleteAsync()
       {
           if (SelectedProduct is null) return;
           await _productService.DeleteAsync(SelectedProduct.Id);
           Products.Remove(SelectedProduct);
       }
       private bool CanDelete() => SelectedProduct is not null;
   }

4. Use x:Bind for compiled bindings — better performance and compile-time checking than {Binding}:

   <TextBlock Text="{x:Bind ViewModel.Title, Mode=OneWay}"/>

5. Wire DI through `Host.CreateDefaultBuilder` — register services, ViewModels, and views. Resolve via App.GetService<T>(). 6. Implement navigation service — map ViewModels to Pages by convention. See references/patterns.md for the full pattern. 7. Handle Windows App SDK features — windowing (AppWindow), custom title bar, app lifecycle, notifications. 8. Always set `XamlRoot` when showing ContentDialog — omitting this causes silent failures. 9. Validate on Windows targets — behavior depends on runtime, packaging model, and Windows version.

Current Upstream Notes

  • Windows App SDK 2.2.0 adds the Microsoft.Windows.AI.Video.VideoScaler API, ApplicationData.GetForUnpackaged(), new XamlBindingHelper value setter overloads, and Setter.ValueProperty.
  • For unpackaged apps, prefer ApplicationData.GetForUnpackaged() over registry or custom folder conventions when the app needs first-class app data storage.
  • When upgrading to 2.2.0, retest RenderTargetBitmap, ScrollView, ThemeSettings, pointer cancellation, sparse-packaged PRI discovery, and Windows ML startup/shutdown paths if the app uses those surfaces.
flowchart LR
  A["Choose WinUI"] --> B["Select packaging model"]
  B --> C["MVVM + DI setup"]
  C --> D["Navigation and views"]
  D --> E["Windows App SDK features"]
  E --> F["Validate on target runtime"]

Key Decisions

DecisionGuidance
Packaged vs unpackagedPackaged (MSIX) for Store, auto-update, and full API access; unpackaged for simpler deployment
x:Bind vs BindingAlways prefer x:Bind — compiled, faster, type-safe
MVVM Toolkit attributesUse [ObservableProperty], [RelayCommand] to eliminate boilerplate
NavigationConvention-based ViewModel→Page mapping via navigation service
ThemingUse RequestedTheme on root element; respect system theme by default

Deliver

  • modern Windows UI code with clear platform boundaries
  • explicit deployment and packaging assumptions
  • MVVM pattern with testable ViewModels
  • cleaner interop between shared and Windows-specific layers

Validate

  • WinUI is chosen for a real product reason, not defaulted to
  • Windows App SDK dependencies are explicit in the project file
  • packaging and runtime assumptions are tested on target
  • x:Bind is used for compiled bindings throughout
  • navigation and ContentDialog both work with correct XamlRoot
  • custom title bar renders correctly on Windows 10 and 11

References

  • references/patterns.md - WinUI 3 patterns including MVVM, navigation services, DI setup, windowing, theming, dialogs, and lifecycle handling
  • references/anti-patterns.md - common WinUI mistakes with explanations and corrections

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.