Library / SDK
lepoco/wpfui avatar
lepoco/wpfui

WPF UI: Fluent styling and navigation for existing WPF applications

WPF UI provides the Fluent experience in your known and loved WPF framework. Intuitive design, themes, navigation and new immersive controls. All natively and effortlessly.

9,664 stars1,003 forksC#MIT

At a glance

What is it?
WPF UI is an MIT-licensed C# library that restyles base WPF controls and adds Fluent controls such as Navigation, NumberBox, Dialog and Snackbar. It fits teams whose WPF codebase already exists and who want Windows 11 visuals without a rewrite.
Who is it for?
Adopt WPF UI if you have a WPF codebase that must keep its XAML and code-behind but needs Windows 11 visuals, and you accept that Segoe Fluent Icons cannot be shipped with the library. Skip it if you are starting fresh and can target WinUI 3 directly, or if your application depends on third-party WPF control libraries whose templates will fight the merged dictionaries.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 95 days ago.
What is it written in?
Mainly C#, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 27, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The gap WPF UI fills for existing WPF codebases

WPF shipped a control set that still looks like the Windows Vista era. Microsoft's newer Fluent visuals live in WinUI 3, a different framework with a different application model. A team with a large WPF application cannot move to WinUI 3 without rewriting windows, pages and navigation. WPF UI targets exactly that gap. The README states that the library "changes the base elements like Page, ToggleButton or List" and adds controls such as Navigation, NumberBox, Dialog and Snackbar. The audience is therefore teams maintaining WPF applications on .NET who want the Fluent look while keeping their existing XAML and C# code-behind. It is not a new framework and it does not replace WPF. It is a set of themes, templates and controls layered on top of it.

How the theme dictionaries and controls attach to a WPF app

The mechanism is resource dictionaries. WPF resolves styles through merged dictionaries in Application.Resources, and WPF UI ships two of them: ThemesDictionary, which carries the theme, and ControlsDictionary, which carries the control templates. The README shows both merged into App.xaml, with ThemesDictionary taking a Theme attribute. Because the templates are ordinary WPF templates, the library can restyle Page, ToggleButton and List without touching your code. The second entry point is ApplicationThemeManager.Apply, which applies or updates the theme resource on a FrameworkElement. That path exists for applications that have no App.xaml. On top of the dictionaries sit the added controls: Navigation, NumberBox, Dialog, Snackbar, TitleBar and FluentWindow. SymbolIcon pulls glyphs from Fluent System Icons. The whole stack stays inside WPF's rendering and dependency property system, which is why the Visual Studio designer still previews it. The README includes a screenshot labelled "Works with Visual Studio Designer".

Installing WPF UI from NuGet and rendering a first FluentWindow

The package is distributed through NuGet, and the README points to nuget.org/packages/wpf-ui and states that WPF UI is delivered via the NuGet package manager. A Visual Studio 2022 extension exists for creating new projects with WPF UI, but for an existing project the package reference is the direct route.

After the reference is added, the application must load the custom styles. The README says to add this to MyApp\App.xaml, inside Application.Resources:

xml
<Application
  ...
  xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml">
  <Application.Resources>
    <ResourceDictionary>
      <ResourceDictionary.MergedDictionaries>
        <ui:ThemesDictionary Theme="Light" />
        <ui:ControlsDictionary />
      </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
  </Application.Resources>
</Application>

If the project has no App.xaml, the README gives ApplicationThemeManager.Apply(frameworkElement) as the alternative. Calling it in the constructor after InitializeComponent applies or updates the theme resource on that element:

csharp
public partial class MainWindow
{
    public MainWindow()
    {
        InitializeComponent();
        ApplicationThemeManager.Apply(this);
    }
}

With the dictionaries in place, the README's example window uses FluentWindow, TitleBar, Card, Button and SymbolIcon together. The expected result is a window whose title bar and button follow the Fluent template rather than the default WPF chrome:

xml
<ui:FluentWindow
  ...
  xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml">
  <StackPanel>
      <ui:TitleBar Title="WPF UI"/>
      <ui:Card Margin="8">
          <ui:Button Content="Hello World" Icon="{ui:SymbolIcon Fluent24}" />
      </ui:Card>
  </StackPanel>
</ui:FluentWindow>

The icon font you cannot redistribute and other sharp edges

The clearest limitation is licensing around icons. WPF UI uses Fluent System Icons, and the README states that this font does not contain all the icons for Windows 11. The fuller Segoe Fluent Icons font is installed by default on Windows 11, but the README says that under its EULA a copy cannot be shipped with the DLL. For Windows 10 and below, the developer must add the font to the application's resources manually. The README shows an override in the app dictionaries:

xml
<FontFamily x:Key="SegoeFluentIcons">pack://application:,,,/;component/Fonts/#Segoe Fluent Icons</FontFamily>

That means an application targeting Windows 10 has a font acquisition step outside the package, and the library cannot solve it for you. A second sharp edge is the scope of the restyle. Because ThemesDictionary and ControlsDictionary replace base templates, any third-party WPF control library that ships its own templates is a candidate for visual conflict, and the README does not document a compatibility list. A third is the platform. Everything here is WPF on Windows; the topics list windows-10 and windows-11, and there is no cross-platform story. If your roadmap includes Linux or macOS, WPF UI is the wrong layer entirely and the decision belongs at the framework level, not the styling level.

WPF UI against Material Design in XAML and against plain WPF

The nearest comparison is Material Design in XAML, which applies Google's Material language to the same base controls through the same resource dictionary mechanism. The difference is the visual target, not the architecture. WPF UI reproduces the Fluent design that Microsoft uses in Windows 11, so its controls read as native on that OS. Material Design in XAML produces an interface that is consistent across platforms but does not look like Windows. The README notes that the design of the interface, the colors and the appearance of the controls were inspired by projects made by Microsoft for Windows 11, and that the Wpf.Ui.Gallery app includes icons from the Microsoft WinUI 3 Gallery app. That is the positioning: a Windows-native look, not a platform-neutral one. The other comparison is plain WPF with hand-written styles. That costs nothing to adopt and carries no dependency, but you write every template yourself, and the base Page, ToggleButton and List templates still need replacing. WPF UI is the shortcut for teams who accept a dependency in exchange for not maintaining that template set.

Maintenance, releases and the MIT licence in practice

The repository is not archived, and the last push was on 2026-06-27. Releases listed are 4.3.0 on 2026-05-04, 4.2.1 on 2026-04-23 and 4.2.0 on 2026-01-10, so the version cadence is roughly quarterly at the major and minor level. The repository carries Directory.Packages.props and Directory.Build.props, which means central package version management is used inside the project itself; that is an internal detail, not something consumers configure. Upgrading WPF UI means upgrading a NuGet reference, and the practical cost sits in the resource dictionaries: a theme change or a template change lands in your App.xaml and in any local style overrides you wrote against the old templates. The README does not document a migration guide between major versions. The licence is MIT. The README states that WPF UI is free and open source under MIT, usable in private and commercial projects, and that you must include a copy of the license in your project. The repository root contains LICENSE and LICENSE.md plus ThirdPartyNotices.txt, which is where the bundled third-party notices live. If your product ships a notice file, that is the file to reconcile against; this is a packaging task, not a legal question, and your counsel decides how it applies.

Editorial conclusion

Adopt WPF UI if you have a WPF codebase that must keep its XAML and code-behind but needs Windows 11 visuals, and you accept that Segoe Fluent Icons cannot be shipped with the library. Skip it if you are starting fresh and can target WinUI 3 directly, or if your application depends on third-party WPF control libraries whose templates will fight the merged dictionaries. Before committing, open the Wpf.Ui.Gallery sample, call ApplicationThemeManager.Apply on a window that has no App.xaml, and check every third-party control you use under both the Light and Dark ThemesDictionary entries.

Frequently asked questions

How do I use WPF UI in an existing WPF application?

Add the WPF-UI NuGet package, then merge ThemesDictionary and ControlsDictionary into Application.Resources in App.xaml. If the project has no App.xaml, the README gives ApplicationThemeManager.Apply(frameworkElement) as the alternative for applying the theme resource.

What is WPF UI?

It is a C# library that brings the Fluent experience to WPF. According to the README it changes base elements like Page, ToggleButton and List, and adds controls such as Navigation, NumberBox, Dialog and Snackbar.

How does WPF UI compare with Material Design in XAML?

Both restyle the same base WPF controls through merged resource dictionaries. The difference is the visual target: WPF UI reproduces the Fluent design Microsoft uses in Windows 11, while Material Design in XAML applies Google's Material language, which does not look like Windows.

What are the alternatives to WPF UI?

The realistic alternatives are Material Design in XAML, which targets a different visual language on the same WPF base, or plain WPF with hand-written styles and templates. The README does not list alternatives; the trade-off is the Fluent look versus a dependency.

Official sources

  1. lepoco/wpfui on GitHub
  2. License: MIT
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/lepoco-wpfui.svg)](https://hysenlabs.com/projects/lepoco-wpfui)