Projektanker.Icons.Avalonia.FontAwesome
9.6.2
dotnet add package Projektanker.Icons.Avalonia.FontAwesome --version 9.6.2
NuGet\Install-Package Projektanker.Icons.Avalonia.FontAwesome -Version 9.6.2
<PackageReference Include="Projektanker.Icons.Avalonia.FontAwesome" Version="9.6.2" />
<PackageVersion Include="Projektanker.Icons.Avalonia.FontAwesome" Version="9.6.2" />
<PackageReference Include="Projektanker.Icons.Avalonia.FontAwesome" />
paket add Projektanker.Icons.Avalonia.FontAwesome --version 9.6.2
#r "nuget: Projektanker.Icons.Avalonia.FontAwesome, 9.6.2"
#:package Projektanker.Icons.Avalonia.FontAwesome@9.6.2
#addin nuget:?package=Projektanker.Icons.Avalonia.FontAwesome&version=9.6.2
#tool nuget:?package=Projektanker.Icons.Avalonia.FontAwesome&version=9.6.2
Icons.Avalonia
A library to easily display icons in an Avalonia App.
NuGet
| Name | Description | Version |
|---|---|---|
| Projektanker.Icons.Avalonia | Core library | |
| Projektanker.Icons.Avalonia.FontAwesome | Font Awesome 6 Free | |
| Projektanker.Icons.Avalonia.MaterialDesign | Material Design Icons |
Icon providers
| Name | Prefix | Example |
|---|---|---|
| FontAwesome 6 | fa |
fa-github |
| MaterialDesign | mdi |
mdi-github |
Usage
A full example is available in the Demo project.
1. Register icon providers on app start up
Register the icon provider(s) with the IconProvider.Current.
class Program
{
// Initialization code. Don't use any Avalonia, third-party APIs or any
// SynchronizationContext-reliant code before AppMain is called: things aren't initialized
// yet and stuff might break.
public static void Main(string[] args)
{
BuildAvaloniaApp()
.StartWithClassicDesktopLifetime(args);
}
// Avalonia configuration, don't remove; also used by visual designer.
public static AppBuilder BuildAvaloniaApp()
{
IconProvider.Current
.Register<FontAwesomeIconProvider>()
.Register<MaterialDesignIconProvider>();
return AppBuilder.Configure<App>()
.UsePlatformDetect()
.LogToTrace();
}
}
2. Add xml namespace
Add xmlns:i="https://github.com/projektanker/icons.avalonia" to your view.
3. Use the icon
Standalone
<i:Icon Value="fa-brands fa-anchor" />
Attached to ContentControl (e.g. Button)
<Button i:Attached.Icon="fa-brands fa-anchor" />
Attached to MenuItem
<MenuItem Header="About" i:MenuItem.Icon="fa-solid fa-circle-info" />
Custom icon size
<i:Icon Value="fa-brands fa-anchor" FontSize="24" />
Animated
<i:Icon Value="fa-spinner" Animation="Pulse" />
<i:Icon Value="fa-sync" Animation="Spin" />
As an Image source
<Image>
<Image.Source>
<i:IconImage Value="fa-brands fa-anchor" Brush="(defaults to black)" />
</Image.Source>
</Image>
Done
Implement your own Icon Provider
Just implement the IIconProvider interface:
namespace Projektanker.Icons.Avalonia
{
/// <summary>
/// Represents an icon reader.
/// </summary>
public interface IIconReader
{
/// <summary>
/// Gets the model of the requested icon.
/// </summary>
/// <param name="value">The value specifying the icon to return it's model from.</param>
/// <returns>The model of the icon.</returns>
/// <exception cref="System.Collections.Generic.KeyNotFoundException">
/// The icon associated with the specified <paramref name="value"/> does not exists.
/// </exception>
IconModel GetIcon(string value);
}
/// <summary>
/// Represents an icon provider.
/// </summary>
public interface IIconProvider : IIconReader
{
/// <summary>
/// Gets the prefix of the <see cref="IIconProvider"/>.
/// </summary>
string Prefix { get; }
}
}
and register it with the IIconProviderContainer:
IconProvider.Current.Register<MyCustomIconProvider>()
or
IIconProvider provider = new MyCustomIconProvider(/* custom ctor arguments */);
IconProvider.Current.Register(provider);
The IIconProvider.Prefix property has to be unique within all registered providers. It is used to select the right provider. E.g. FontAwesomeIconProvider's prefix is fa.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Projektanker.Icons.Avalonia (>= 9.6.2)
- System.Text.Json (>= 9.0.4)
NuGet packages (6)
Showing the top 5 NuGet packages that depend on Projektanker.Icons.Avalonia.FontAwesome:
| Package | Downloads |
|---|---|
|
Zafiro.Avalonia.Icons.Projektanker
UI components, controls, dialogs, behaviors, and helpers for Avalonia applications. Includes reactive patterns, cross-platform support (desktop, mobile, browser), and source generators. |
|
|
TestApp.Desktop
Package Description |
|
|
R2CSharp.Lib
Core Avalonia UI components and functionality for R2CSharp |
|
|
SuppaWallet.Gui
Package Description |
|
|
SuppaWallet.Gui.Desktop
Package Description |
GitHub repositories (15)
Showing the top 15 popular GitHub repositories that depend on Projektanker.Icons.Avalonia.FontAwesome:
| Repository | Stars |
|---|---|
|
LykosAI/StabilityMatrix
Multi-Platform Package Manager for Stable Diffusion
|
|
|
sn4k3/UVtools
MSLA/DLP, file analysis, calibration, repair, conversion and manipulation
|
|
|
fifty-six/Scarab
An installer for Hollow Knight mods written in Avalonia.
|
|
|
paulirwin/JavaToCSharp
Java to C# converter
|
|
|
schneidermanuel/TwitchLeecher-Dx
Twitch Leecher DX - The Broadcast Downloader
|
|
|
AvaloniaInside/Shell
Reduces the complexity of mobile/desktop application development by providing the fundamental features that most applications require
|
|
|
Ombrelin/plex-rich-presence
A desktop app to enable discord rich presence for your Plex Media Server Activity
|
|
|
telstrapurple/PurpleExplorer
cross-platform Azure Service Bus explorer (Windows, MacOS, Linux)
|
|
|
fgsfds/Steam-Superheater
Steam Superheater is an app that can fix and improve games on Steam that are broken or have troubles running on modern systems
|
|
|
hailstorm75/ModularDoc
Modular documentation generator for .NET libraries. Currently supporting Markdown only for GitHub, GitLab, and Bitbucket
|
|
|
niksedk/subtitleedit-avalonia
|
|
|
TKMM-Team/Tkmm
TotK Mod Manager, a mod manager and merger for Tears of the Kingdom
|
|
|
SignatureBeef/Open-Terraria-API
Open Terraria API - Mac, Linux & Windows
|
|
|
Polyhaze/Volte
A free, robust, open-source Discord bot written in C# using .NET and a whole lotta Man Hours.
|
|
|
fgsfds/BuildLauncher
BuildLauncher is THE frontend for Build Engine games
|
| Version | Downloads | Last Updated |
|---|---|---|
| 9.6.2 | 38,896 | 5/7/2025 |
| 9.6.1 | 8,183 | 2/18/2025 |
| 9.6.0 | 8,446 | 12/22/2024 |
| 9.5.0 | 3,596 | 11/24/2024 |
| 9.4.3 | 7,940 | 11/18/2024 |
| 9.4.2 | 834 | 11/18/2024 |
| 9.4.1 | 6,620 | 10/4/2024 |
| 9.4.0 | 78,517 | 7/21/2024 |
| 9.3.0 | 12,165 | 4/7/2024 |
| 9.2.0 | 1,541 | 3/29/2024 |
| 9.1.2 | 1,883 | 3/12/2024 |
| 9.1.1 | 5,416 | 2/22/2024 |
| 9.0.1 | 9,518 | 12/8/2023 |
| 9.0.0 | 1,018 | 12/6/2023 |
| 8.4.0 | 2,460 | 12/6/2023 |
| 8.3.0 | 7,866 | 10/11/2023 |
| 8.2.0 | 4,969 | 8/6/2023 |
| 8.1.0 | 1,261 | 7/26/2023 |
| 8.0.0 | 1,335 | 7/17/2023 |
| 7.0.1 | 1,458 | 7/16/2023 |