Parsed icons set from materialdesignicons.com
$ dotnet add package Material.IconsParsed icons set from materialdesignicons.com and display control implementations for different GUI frameworks.

This project consists of 3 parts:
FAQ - frequently asked questions
dotnet add package Material.Icons.Avalonia
App.xaml (for 2.0.0 version and higher):
<Application xmlns:materialIcons="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
...>
<Application.Styles>
...
<materialIcons:MaterialIconStyles />
</Application.Styles>
</Application>
For 1.*.*:
<Application ...>
<Application.Styles>
...
<StyleInclude Source="avares://Material.Icons.Avalonia/App.xaml" />
</Application.Styles>
</Application>
Add Material.Icons.Avalonia namespace to the root element of your file (your IDE can suggest it or do it automatically):
xmlns:materialIcons="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
Use MaterialIcon control:
<materialIcons:MaterialIcon Kind="Abacus" />
The Foreground property controls the color of the icon.
Also, there is MaterialIconExt which allows you to use is as the markup extension:
<Button Content="{materialIcons:MaterialIconExt Kind=Abacus}" />
dotnet add package Material.Icons.Avalonia
type App() =
inherit Application()
override this.Initialize() =
..
this.Styles.Add(MaterialIconStyles(null))
..
MaterialIcon
namespace Avalonia.FuncUI.DSL
[<AutoOpen>]
module MaterialIcon =
open Material.Icons
open Material.Icons.Avalonia
open Avalonia.FuncUI.Types
open Avalonia.FuncUI.Builder
let create (attrs: IAttr<MaterialIcon> list): IView<MaterialIcon> =
ViewBuilder.Create<MaterialIcon>(attrs)
type MaterialIcon with
static member kind<'t when 't :> MaterialIcon>(value: MaterialIconKind) : IAttr<'t> =
AttrBuilder<'t>.CreateProperty<MaterialIconKind>(MaterialIcon.KindProperty, value, ValueNone)
Button.create [
Button.content (
MaterialIcon.create [
MaterialIcon.kind MaterialIconKind.Export
]
)
]
Install Material.Icons.WPF nuget package:
dotnet add package Material.Icons.WPF
Add Material.Icons.WPF namespace to the root element of your file (your IDE can suggest it or do it automatically):
xmlns:materialIcons="clr-namespace:Material.Icons.WPF;assembly=Material.Icons.WPF"
Use MaterialIcon control:
<materialIcons:MaterialIcon Kind="Abacus" />
The Foreground property controls the color of the icon.
Also, there is MaterialIconExt which allows you to use is as the markup extension:
<Button Content="{materialIcons:MaterialIconExt Kind=Abacus}" />
Install Material.Icons nuget package:
dotnet add package Material.Icons
Icon types stored in Material.Icons.MaterialIconKind enum.
We can resolve an icon path by using Material.Icons.MaterialIconDataProvider.GetData().
Currently, there is no way to add your own icons, as icons are enum and cannot be modified.
But you can override some existing icons to use your own data:
public class CustomIconProvider : MaterialIconDataProvider
{
public override string ProvideData(MaterialIconKind kind)
{
return kind switch
{
MaterialIconKind.TrophyVariant => "some SVG code",
_ => base.ProvideData(kind)
};
}
}
// When your application starts (e.g. in the Main method) replace MaterialIconDataProvider with your own
public static int Main(string[] args)
{
MaterialIconDataProvider.Instance = new CustomIconProvider(); // Settings custom provider
// Application startup code
// return BuildAvaloniaApp().StartWithClassicDesktopLifetime(args);
}
Foreground property.MaterialIcon control - use Width or/and Height properties.MaterialIconExt - use Size property.Material.Icons package version in your project file.1.0.0 and 1.0.1 are compatible, but 1.0.0 and 1.1.0 might not be.