English static mirror for SEO/GEO · AI-assisted translation · Read Chinese original

A Brief History of WinUI: Three Generations from WPF to WinUI 3

Forum topic · 小凯 · 2026-02-20

Summary

This article traces two decades of Microsoft Windows UI framework evolution across three generations: WPF (2006), UWP XAML (2015), and WinUI 3 (2020). WPF introduced declarative XAML UI and managed-code development on .NET Framework with DirectX 9 rendering. UWP XAML moved to a native C++ core with WinRT APIs, sandboxed distribution via the Windows Store, and DirectComposition rendering, but tied the XAML engine to Windows 10 OS updates. WinUI 3 decouples the entire UI stack from the OS, shipping it as NuGet packages through the Windows App SDK, supporting both Win32 desktop and UWP app models, rendering with DirectX 12, and implementing the Fluent Design System (Acrylic, Mica). The article also covers the dependency property value-precedence system, compares WinUI 3 with .NET MAUI and Uno Platform for cross-platform development, and offers guidance: new Windows projects should use WinUI 3, cross-platform needs are served by Uno Platform or MAUI, and UWP projects should migrate to WinUI 3.

This post from zhichai.net traces twenty years of Microsoft Windows UI technology through three framework generations, from managed code to native decoupled frameworks.

Key points

Generation 1: WPF (2006)

  • Shipped with Windows Vista as part of .NET Framework 3.0; marked the shift from Win32 GUI to managed code.
  • Introduced XAML (declarative UI) and strong MVVM/data-binding support; rendered via DirectX 9.
  • Limitations: .NET Framework dependency, Windows Desktop only, performance constrained by managed code and DirectX 9.
  • Generation 2: UWP XAML (2015)

  • Launched with Windows 10 as part of the Universal Windows Platform: one codebase across PC, tablet, phone, Xbox, HoloLens.
  • Native C++ core with language projections (C#, C++, JS); modern WinRT APIs; sandboxed AppContainer; Store distribution with automatic updates; native DirectComposition rendering.
  • Key differences from WPF: native vs. managed core, Store/MSIX vs. MSI/ClickOnce, DirectComposition vs. DirectX 9 wrappers.
  • Limitations: XAML engine was built into Windows 10, so new features required OS updates; UWP apps were isolated from Win32 desktop integration; strict Store review drove developers away.
  • Generation 3: WinUI 3 (2020)

  • The revolutionary change: the entire UI stack is decoupled from the OS and shipped as NuGet packages via the Windows App SDK, fully independent of OS release cycles.
  • Architecture layers: App (XAML + C#/C++) → Framework (Microsoft.UI.Xaml controls, binding, dependency properties, visual state manager) → Visual layer (Microsoft.UI.Composition: compositor, visual tree, effects, animation) → Graphics (DirectX 12 / DirectComposition with GPU acceleration).
  • Comparison highlights:
  • | Feature | WinUI 3 | UWP | WPF | |---|---|---|---| | OS dependency | Independent NuGet | Built into OS | .NET Framework | | Rendering | DirectX 12 | DirectComposition | DirectX 9 | | Desktop support | Win32 + UWP | UWP only | Win32 only | | Backward compat | Windows 10 1809+ | Version-bound | .NET Framework bound | | Update cadence | Monthly | ~6 months / with OS | Discontinued |

    Dependency properties: the soul of XAML

    WinUI 3 inherits the multi-level value resolution system, in priority order (highest to lowest): animated value → local value → templated value → style setter → default value from PropertyMetadata.

    Fluent Design System

    WinUI 3 is the official Fluent Design implementation: Acrylic and Mica materials, Reveal highlight, elevation shadows, rounded corners, animation, and depth.

    Cross-platform ecosystem

  • Uno Platform fully ports the WinUI 3 API to iOS, Android, WebAssembly, macOS, and Linux (native rendering plus Skia), in contrast to abstraction-layer approaches like MAUI/Xamarin.Forms that define a lowest-common-denominator API.
  • WinUI 3 vs .NET MAUI: WinUI 3 targets Windows-native self-drawn UI via Windows App SDK; MAUI wraps native controls across iOS/Android/Win/macOS. Neither supports Linux; neither supports WebAssembly directly (MAUI offers Blazor Hybrid).
  • Recommendations

  • New Windows projects: prefer WinUI 3 + Windows App SDK.
  • Cross-platform needs: Uno Platform (WinUI API) or .NET MAUI (native feel).
  • Legacy WPF: still usable, but feature development has stopped.
  • UWP projects: migrate to WinUI 3 for continued updates.
WinUI 3, with OS decoupling, DirectX 12 rendering, unified app models, and an open ecosystem, is becoming the de facto standard for Windows desktop development as Windows 11 adoption grows.

References

1. Windows App SDK documentation 2. WinUI 3 GitHub repository 3. Uno Platform documentation 4. Fluent Design System

> Originally compiled from the zhichai.net Uno Platform tutorial series, supplemented with official documentation.

Tags

#winui-3#wpf#uwp#windows-app-sdk#xaml#fluent-design#uno-platform#dotnet-maui

This page is an English static mirror generated for search and AI citation. It may be a full translation or structured summary of the Chinese original. Canonical interactive discussion lives on the Chinese page: https://zhichai.net/topic/176922853