WinUI icons: SymbolIcon, FontIcon and Fluent icons in WinUI 3
By Colton Griffith · Updated
WinUI 3 has several icon elements. Which one to use depends on where the icon comes from: the Windows system font, Microsoft's larger Fluent UI System Icons set, or your own artwork. All of them inherit the foreground color, so they follow light, dark and high-contrast themes.
The icon elements
| Element | Draws | Use it for |
|---|---|---|
SymbolIcon |
A glyph from the Symbol enumeration (Segoe Fluent Icons) |
Common commands: Add, Delete, Edit, Save, Share |
FontIcon |
Any glyph from any font, by code point | Segoe Fluent Icons glyphs not in Symbol, or the Fluent System Icons font |
PathIcon |
Vector path data | One-off icons, SVG paths from an icon set |
ImageIcon |
An image, including SVG | Multicolor or branded icons |
BitmapIcon |
A bitmap tinted with the foreground | Simple single-color images |
Controls such as AppBarButton and NavigationViewItem take one of these in their Icon property. Templated places use the matching *IconSource (SymbolIconSource, FontIconSource, PathIconSource).
System icons: Segoe Fluent Icons
Windows 11's icon font, Segoe Fluent Icons, covers standard commands. Use SymbolIcon when the icon is in the Symbol enumeration, and FontIcon with its code point otherwise:
<AppBarButton Label="Add" Icon="Add" />
<SymbolIcon Symbol="GlobalNavigationButton" />
<FontIcon FontFamily="{StaticResource SymbolThemeFontFamily}" Glyph="" />
SymbolThemeFontFamily resolves to Segoe Fluent Icons on Windows 11 and Segoe MDL2 Assets on Windows 10. The Segoe Fluent Icons list has all 1,500+ glyphs with their codes. Microsoft designs them for 16, 20, 24, 32, 40, 48 and 64 px.
When the system font doesn't have it: Fluent UI System Icons
Segoe Fluent Icons is built for system UI and has gaps: app features like dashboards, AI, finance or health often have no glyph. Fluent UI System Icons is Microsoft's 3,000+ icon set in the same design language, MIT licensed, with regular and filled styles. Two ways to use it in WinUI:
The icon font. Add FluentSystemIcons-Regular.ttf (and -Filled) from Microsoft's fluentui-system-icons repository to Assets/Fonts, then use a FontIcon. Each icon page's WinUI / WPF code tab has the code point:
<FontIcon FontFamily="ms-appx:///Assets/Fonts/FluentSystemIcons-Regular.ttf#FluentSystemIcons-Regular"
Glyph="" FontSize="20" /> <!-- Home -->
Define the font once as a resource (<FontFamily x:Key="FluentIcons">…</FontFamily>) so you don't repeat the path.
A path. For a few icons, click Copy SVG on an icon page and put the d="…" value in a PathIcon:
<PathIcon Data="PASTE THE PATH DATA HERE" />
Filled for selected, regular for everything else
Windows uses the regular (outlined) style by default and the filled style for a selected or active state, such as the current page in a NavigationView. With the Fluent System Icons font that means swapping between the Regular and Filled fonts; filled vs. regular icons covers the pattern.
WinUI Gallery
Microsoft's WinUI 3 Gallery app shows each icon element live, with the code, and is the quickest way to try them. For WPF, see WPF icons; for every Microsoft set, see Microsoft icons.
Find the icons mentioned here with the icon search, or read another guide.