About WinUI

What is WinUI?

WinUI is a user interface layer that contains modern controls and styles for building Windows apps. As the native UI layer in Windows it embodies Fluent Design, giving each Windows app the polished feel that customers expect.

WinUI 2 is a library of controls and styles currently available for use in any UWP app. It offers exciting, flexible, modern controls such as NavigationView and TeachingTip.

WinUI 3 is the next version of the WinUI framework, shipping later this year. It dramatically expands WinUI into a full UX framework, making WinUI available for all types of Windows apps – from Win32 to UWP – for use as the UI layer. Going forward, every Windows app will now be able to take advantage of its modern controls that work regardless of the Windows version that they are running on.

Who can use WinUI?

While WinUI 2 is only compatible with UWP XAML, WinUI 3 will work with every kind of Windows app! WinUI 3 can be used directly as the UI layer for Win32 and UWP apps, or it can be used to modernize a Win32 app's UI gradually, using XAML Islands to mix and match with the following technologies:

  • WPF
  • WinForms
  • MFC
  • ComCtl32

WinUI also serves as the basis for cross-platform technologies that provide great native Windows experiences. React Native for Windows, Xamarin.Forms, and the Uno platform harness the power of WinUI today - if you're currently using those platforms you're already using WinUI!

Controls and features

Use the table below to see how WinUI compares to your favorite technology.

WinUI 3 UWP XAML & WinUI 2 WPF WinForms MFC
Windows app types supported UWP and Win32 UWP Win32 Win32 Win32
Windows versions supported Windows 10 (1803+) Windows 10 (1703+) Windows XP or higher Windows XP or higher Windows XP or higher
Supported on all Windows device families *
Native C/C++
.NET 5 Support
WebView2
(Chromium-based engine)
** **
Built-in Fluent Design controls
Built-in support for modern input
(e.g. touch, pen, gamepad*)
Uses latest DirectX version for graphics performance
High performance data binding
(x:Bind)
Input Validation

* Coming to a future version of WinUI 3.
** Work in progress.

Find your path forward

Energize your favorite native application with enhanced, intuitive experiences or start building that exciting app idea from scratch - WinUI is built for both new and existing Windows apps.

How do you want to use WinUI?

Path for UWP apps

UWP apps are modern, flexible, and integrate easily with WinUI. WinUI 3 provides even more modernizations and improvements, including the following:

  • New controls and capabilities: WinUI builds on what's available in UWP and gives you even more- including input validation, a modern Chromium-based WebView, and a full set of Fluent design based controls. You can browse WinUI controls in the Xaml Controls Gallery app.
  • Greater agility: Decoupled from the OS and frequently updated, WinUI offers backwards compatibility and gives you access to cutting edge updates.

For detailed instructions on how to use WinUI in your UWP app, see:

Path for Win32 apps

WinUI can be used with Win32 apps in two different ways. Here's how:

Complete use: You can use WinUI 3 as the entire UI layer for your desktop app, replacing your current main UI framework. This method ensures that your entire app is modern and consistent in that each component of the app has the same rich functionality and capability.

WinUI 3 Preview 2 is now available, which lets you use WinUI to build a Win32 app. For instructions and details, see:

Hybrid use: With Xaml Islands, you can modernize certain parts of your app with WinUI, allowing you to adopt WinUI at your own pace. You can host any built-in UWP control or custom-created control inside of your desktop app, along with UWP functionality such as WebView or modern input support. Xaml Islands allows you to upgrade your interface where it would be most impactful in your application.

To learn more about getting started with Xaml Islands, you can refer to the modernization docs.