A markup extension for Avalonia, that allows you to use Font Awesome. It already contains version 6 (alpha 2). You can combine upto two glyphs. Including style, colors, outline, placement or custom SVG styling.
Features?
- already prepackaged version 6 (alpha 2)
- all supported versions (brands, duotone, light, regular, solid, thin)
- up to 2 glyphs :D
- you can choose brushes
- outline color/width
- placement and relative sizing
- automatically detects if element you use it on is enabled/disabled
- alternatively you can just write custom SVG style snippet,
that will be inserted into<path style="{your_style}" />
Usage?
- Add declaration in your XAML:
xmlns:a="clr-namespace:Library.Font.Awesome;assembly=Library.Font.Awesome"
- Use markup extension and set properties:
<Image Source="{a:Awesome Major=person, Minor=plus, Secondary=DarkGreen}" />
- Additionally you can use global defaults (set in your code - App.axaml.cs),
so all the images will have these settings:
Awesome.DefaultVersion = FontVersion.Solid;
Awesome.DefaultPrimary = Brushes.White;
Results?
Properties explained:
Version - enum that decides Awesome Font style (brands/duotone/light/regular/solid/thin)
Placement - layout of glyph or glyphs
Major - name of the glyph #1 (main glyph)
Minor - name of the glyph #2 (side glyph)
Primary - color of the glyph #1 (ISolidColorBrush) - default: Black
Secondary - color of the glyph #2 (ISolidColorBrush) - default: Black
Outline - color of the outline (ISolidColorBrush) - default: Transparent
Width - width of the outline - default: 0
Style - string to be inserted into <path style="{style}" />
Placement explained:
Left - aligns glyph #2 to the left
Right - aligns glyph #2 to the right
Top - aligns glyph #2 to the top
Bottom - aligns glyph #2 to the bottom
Under - makes glyph #2 appear behind glyph #1
Quarter - when X1 is specified it means glyph #2 is 1/4 size, when not glyph #1 covers to 3/4 of glyph #2
Half - when X1 is specified it means glyph #2 is 1/2 size, when not glyph #1 covers to 1/2 of glyph #2
Full - when X1 is specified it means glyph #2 is full size, when not glyph #1 doesn't cover glyph #2
X1 - scales glyph #2 to full size (see Full/Half/Quarter)
X2 - scales glyph #2 to 1/2
X3 - scales glyph #2 to 1/3
X4 - scales glyph #2 to 1/4
You can combine X2/X3/X4. Example: X2,X3 = 1/2 + 1/3 = 5/6
By default the placement is X2,Half,Right,Bottom (you can see it in the picture)
