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 Window, Page or Button, and also includes additional controls like Navigation, ToggleButton or Snackbar.
What's included?
Screenshots
Custom controls
Control | Namespace | Description |
---|---|---|
Button | WPFUI.Controls | Class with which you can send a Toast to the Windows notification center. |
CardAction | WPFUI.Controls | Inherited from the Button interactive card styled according to Fluent Design. |
CardCollapse | WPFUI.Controls | Inherited from the ContentControl control which can hide the collapsable content. |
CardControl | WPFUI.Controls | Inherited from the Button control which displays an additional control on the right side of the card. |
CardProfile | WPFUI.Controls | Simple element that displays an image in a circular frame like in default applications for Windows 11. |
CodeBlock | WPFUI.Controls | Formats and display a fragment of the source code. |
Dialog | WPFUI.Controls | Displays a large card with a slightly transparent background and two action buttons. |
Snackbar | WPFUI.Controls | Animated card with a notification displayed at the bottom of the application. |
FontIcon | WPFUI.Controls | Represents a text element containing an icon glyph with selectable font family. |
Hyperlink | WPFUI.Controls | Button that opens a URL in a web browser. |
Icon | WPFUI.Controls | Represents a text element containing an icon glyph. |
Navigation | WPFUI.Controls | Navigation styled as UWP apps. |
NavigationStore | WPFUI.Controls | Navigation styled as Windows 11 Store app |
NavigationFluent | WPFUI.Controls | Navigation styled as Windows 11 Settings app. |
TitleBar | WPFUI.Controls | A set of buttons that can replace the default window navigation, giving it a new, modern look. |
Custom classes and tools
Class | Namespace | Description |
---|---|---|
Manager | WPFUI.Theme | Allows to manage available color themes from the library. |
Watcher | WPFUI.Theme | Listens for SystemParameters changes while waiting for StaticPropertyChanged to change, then switches theme with Manager.Switch. |
Progress | WPFUI.Taskbar | Allows to change the status of the displayed notification in the application icon on the TaskBar. |
Mica | WPFUI.Background | Mica is a material that appears on the backdrop of your application โ behind all other content. |
XAML styles for use in the application.
Resource usage | Description |
---|---|
<Window Style="{StaticResource UiWindow}"/> |
Add a custom appearance to the window and removes the navigation buttons. |
<Page Style="{StaticResource UiPage}"/> |
Add a custom appearance to the page. |
<Page Style="{StaticResource UiPageScrollable}"/> |
Add a custom appearance to the page and automatic display of scrolling if the content is too long. |
How to use?
First, your application needs to load custom styles, add in the MyApp\App.xaml file:
<Application>
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/WPFUI;component/Styles/Theme/Dark.xaml" />
<ResourceDictionary Source="pack://application:,,,/WPFUI;component/Styles/WPFUI.xaml" />
</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
<Window
xmlns:wpfui="clr-namespace:WPFUI.Controls;assembly=WPFUI"
Style="{StaticResource UiWindow}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<wpfui:TitleBar Grid.Row="0" ApplicationNavigation="True" />
<Grid Grid.Row="1" Margin="12,6,12,12">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</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
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
<FontFamily x: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.
License
WPF UI is free and open source software licensed under Mozilla Public License 2.0. You can use it in private and commercial projects.
Keep in mind that you must include a copy of the license in your project.