Skip to content

Repository files navigation

WPF UI

Created with ❤ in Poland by lepo.co
A simple way to make your application written in WPF keep up with modern design trends. Library changes the base elements like Page, ToggleButton or List, and also includes additional controls like Navigation, NumberBox, Dialog or Snackbar.

GitHub licenseNugetNuget (with prereleases)NugetSizeSponsors

🚀 Getting started

For a starter guide see our documentation.

WPF UI is delivered via NuGet package manager. You can find the package here: https://www.nuget.org/packages/WPF-UI/

📁 What's included?

NameFramework
WPFUI
Library that allows you to use all features in your own application
NET6NET5
NETCore3
NETFramework48
NETFramework47
NETFramework46
WPFUI.Demo
An application written in WPF .NET 6 where you can test the features.
NET6win

🏭 Branches

BranchStatus
WPFUI MainBuild status
WPFUI DevelopmentBuild status

📷 Screenshots

Demo App Sample

Text Editor Sample

Store App Sample

🏗️ Works with Visual Studio Designer

VS2022 Designer Preview

🏁 Virtualized panels for displaying thousands controls

WPF UI virtualized wrap panels

❤️ Custom Tray icon and menu in pure WPF

WPF UI Tray menu in WPF

⚓ Custom Windows 11 SnapLayout available for TitleBar.

WPF UI Snap Layout for WPF

🕹️ Radiograph

Radiograph is a computer hardware monitoring app that uses WPF UI.

Radiograph screenshot

🛠️ Custom controls

ControlNamespaceDescription
AnchorWPFUI.ControlsCreates a hyperlink to web pages, files or anything else a URL can address.
ArcWPFUI.ControlsDraws a symmetrical arc with rounded edges.
BadgeWPFUI.ControlsUsed to highlight an item, attract attention or flag status.
BreadcrumbWPFUI.ControlsAutomatic display of the page title from the navigation in the application.
ButtonWPFUI.ControlsCustom button with additional parameters like an icon.
CardWPFUI.ControlsSimple card compatible with the theme for displaying other elements.
CardActionWPFUI.ControlsInherited from the Button interactive card styled according to Fluent Design.
CardControlWPFUI.ControlsInherited from the Button control which displays an additional control on the right side of the card.
CardExpanderWPFUI.ControlsInherited from the ContentControl control which can hide the collapsable content.
CodeBlockWPFUI.ControlsFormats syntax and display a fragment of the source code.
DialogWPFUI.ControlsDisplays a large card with a slightly transparent background and two action buttons.
FontIconWPFUI.ControlsRepresents a text element containing an icon glyph with selectable font family.
HyperlinkWPFUI.ControlsButton that opens a URL in a web browser.
SymbolIconWPFUI.ControlsRepresents a text element containing an icon glyph.
MessageBoxWPFUI.ControlsCustom window to display notifications outside the application.
NavigationWPFUI.ControlsNavigation styled as UWP apps.
NavigationItemWPFUI.ControlsElement of the navigation.
NavigationStoreWPFUI.ControlsNavigation styled as Windows 11 Store app
NavigationFluentWPFUI.ControlsNavigation styled as Windows 11 Settings app.
NumberBoxWPFUI.ControlsText field for entering numbers with the possibility of setting a mask.
ProgressRingWPFUI.ControlsRotating loading ring like in Windows 11.
RatingWPFUI.ControlsStars to display the rating.
SearchBoxWPFUI.ControlsLets look for things and other stuff.
SnackbarWPFUI.ControlsAnimated card with a notification displayed at the bottom of the application.
TextBoxWPFUI.ControlsText field for with placeholders and icons.
TitleBarWPFUI.ControlsA set of buttons that can replace the default window navigation, giving it a new, modern look with implemented NotifyIcon.

🧩 Custom classes and tools

ClassNamespaceDescription
ThemeWPFUI.AppearanceAllows to manage available color themes from the library.
BackgroundWPFUI.AppearanceAllows to add background effects like Mica or Acrylic.
AccentWPFUI.AppearanceAllows to change the application color accents.
WatcherWPFUI.AppearanceListens for changes in system parameters, then switches theme with Appearance.Theme.Set.
ProgressWPFUI.TaskbarAllows to change the status of the displayed notification in the application icon on the TaskBar.
NotifyIconWPFUI.TrayAllows to create an icon and a menu in the tray.

🖌️ Custom XAML styles

Resource usageDescription
<Window Style="{StaticResource UiWindow}"/>Adds a custom appearance to the window and removes the navigation buttons.
<Page Style="{StaticResource UiPage}"/>Adds a custom appearance to the page.
<Page Style="{StaticResource UiPageScrollable}"/>Adds a custom appearance to the page and automatic display of scrolling if the content is too long.

📖 Documentation

Documentation can be found at https://wpfui.lepo.co/. We also have a tutorial over there for newcomers.

🚧 Development

If you want to propose a new functionality or submit a bugfix, create a Pull Request for the branch development.

📐 How to use?

First, your application needs to load custom styles, add in the MyApp\App.xaml file:

<Applicationxmlns:wpfui="http://schemas.lepo.co/wpfui/2022/xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<wpfui:ResourcesTheme="Dark" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>

Now, you can customize your views, for example by adding a non-standard look to the main window and navigation buttons

<Windowxmlns:wpfui="http://schemas.lepo.co/wpfui/2022/xaml"Style="{StaticResource UiWindow}">
<Grid>
<Grid.RowDefinitions>
<RowDefinitionHeight="Auto" />
<RowDefinitionHeight="*" />
</Grid.RowDefinitions>
<wpfui:TitleBar Grid.Row="0"ForceShutdown="True" />
<Grid Grid.Row="1"Margin="12,6,12,12">
<Grid.ColumnDefinitions>
<ColumnDefinitionWidth="Auto" />
<ColumnDefinitionWidth="*" />
</Grid.ColumnDefinitions>
<wpfui:NavigationFluent Grid.Column="0"Margin="0,0,12,0" />
<Frame Grid.Column="1" />
</Grid>
</Grid>
</Window>

Special thanks

Crafting apps for .NET without the creators of tools like ReSharper or XAML Styler would never be such a fantastic adventure.

Microsoft Property

Design of the interface, choice of colors and the appearance of the controls were inspired by projects made by Microsoft for Windows 11.
The WPFUI.Demo app includes icons from Shell32 for Windows 11. These icons are the legal property of Microsoft and you may not use them in your own app without permission. They are used here as an example of creating tools for Microsoft systems.

Segoe Fluent Icons

WPF UI uses Fluent System Icons. Although this font was also created by Microsoft, it does not contain all the icons for Windows 11. If you need the missing icons, add Segoe Fluent Icons to your application.
According to the EULA of Segoe Fluent Icons we cannot ship a copy of it with this dll. Segoe Fluent Icons is installed by default on Windows 11, but if you want these icons in an application for Windows 10 and below, you must manually add the font to your application's resources.
https://docs.microsoft.com/en-us/windows/apps/design/style/segoe-fluent-icons-font
https://docs.microsoft.com/en-us/windows/apps/design/downloads/#fonts

In the app dictionaries, you can add an alternate path to the font

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

Compilation

Use Visual Studio 2022 and invoke the .sln.

Visual Studio
WPF UI is an Open Source project. You are entitled to download and use the freely available Visual Studio Community Edition to build, run or develop for WPF UI. As per the Visual Studio Community Edition license, this applies regardless of whether you are an individual or a corporate user.

Code of Conduct

This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community.

License

WPF UI is free and open source software licensed under MIT License. You can use it in private and commercial projects.
Keep in mind that you must include a copy of the license in your project.

About

A simple way to make your application written in WPF keep up with modern design trends. Library changes the base elements like Page, ToggleButton or List, and also includes additional controls like Navigation, NumberBox, Dialog or Snackbar.

Resources

Code of conduct

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages