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 generation of the WinUI framework, and is now available for production apps. It dramatically expands WinUI into a full UX framework, and ships as a part of the Windows App SDK . With WinUI 3, modern controls, styles, and capabilities will be available to apps on Windows 11 and Windows 10.
WinUI 2 is compatible with UWP apps, and WinUI 3 works with any app supported by the Windows App SDK. WinUI 3 can be used directly as the UI layer for desktop apps, or starting next year, it can be used to modernize a Win32 app's UI gradually, using XAML Islands to mix and match with the following technologies:
WinUI also serves as the basis for cross-platform technologies that provide great native Windows experiences. React Native for Windows, .NET MAUI, and the Uno platform harness the power of WinUI today - if you're currently using those platforms you're already using WinUI!
Use the table below to see how WinUI compares to your favorite technology.
The symbol marks that the capability/feature is included.
* Work in progress.
Capability/feature | WinUI 3 | UWP XAML & WinUI 2 | WPF | WinForms | MFC |
---|---|---|---|---|---|
Windows app types supported | Desktop | UWP | Desktop | Desktop | Desktop |
Windows versions supported | Win10, 1809+ Win11 (all) |
Win10, 1703+ Win11 (all) |
Windows XP or higher | Windows XP or higher | Windows XP or higher |
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) |
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?
UWP apps are modern, flexible, and integrate easily with WinUI. WinUI 2 provides even more modernizations and improvements, including the following:
For detailed instructions on how to use WinUI in your UWP app, see:
WinUI can be used with desktop 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.
With WinUI 3, you can use WinUI to build a desktop 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.
Note that support for Xaml Islands in WinUI 3 is coming next year. To learn more about getting started with Xaml Islands, you can refer to the modernization docs.