winui3-csharp-app
WinUI 3 / Windows App SDK desktop apps in C#/XAML. MVVM, bindings, navigation, Mica/Acrylic, windowing, packaging, performance.
SKILL.mdskills_archive/winui3-csharp-app/SKILL.md
GitHubWinUI 3 C# App
read other relevant winui* skills also as needed.
Workflow
- Classify: new app, existing app, or specific issue.
- New app → Quick Start (New). Existing app → Quick Start (Existing).
- Route via Reference Index.
Core Rules
- Prefer Windows App SDK / WinUI APIs over custom interop.
- Code-behind = view glue only; state/logic in ViewModels.
- Prefer
x:Bind(typed);Bindingfor dynamic DataContext. - Marshal UI work through
DispatcherQueue. - System backdrops via
Window.SystemBackdropwith fallback. - Keep behavior stable unless explicitly asked to change.
- Architecture/packaging/library choices: present 2–3 options + tradeoffs + recommendation.
Scope
- In: WinUI 3 / Windows App SDK desktop apps, C#/XAML, MVVM, navigation, windowing, packaging, performance.
- Out: WPF, UWP, WinForms, C++/WinRT unless explicitly requested.
Reference Index
references/foundations.md→ project setup, release channels, MVVM/tooling, threading migrationreferences/ui-ux.md→ navigation, layout, title bar, backdrops, accessibilityreferences/design-fluent.md→ Fluent design principles, UX polishreferences/windowing.md→ AppWindow, multi-window, dialogs, pickersreferences/performance.md→ bindings, x:Load, list virtualization, perf basics
Quick Start (New)
- Decide packaging + target framework; document constraints.
- Architecture: code-behind for small apps, MVVM Toolkit for larger.
- Create ViewModel, expose for
x:Bind. - Layout with
Grid/StackPanel. - Commands via
RelayCommand/AsyncRelayCommand. - Add navigation if multi-page.
Quick Start (Existing)
- Audit binding modes +
DataContext; fixx:BindvsBindingmismatches. - Move logic to ViewModels; keep code-behind thin.
- Threading: UI updates on UI thread via
DispatcherQueue. - Validate system backdrop usage + fallbacks.
- Check dialogs, pickers, multi-window in
references/windowing.md.