public static IAppHostBuilder ConfigureIconFonts(this IAppHostBuilder builder, Action <FontOptionsBuilder> configureOptions) { LabelHandler.LabelMapper[KnownPropertyNames.Icon] = (handler, view) => { if (view is not Text text) { return; } var selector = (string)text.GetEnvironment(KnownPropertyNames.Icon, cascades: false); (var glyph, string fontName) = Lookup(selector, handler.MauiContext); text.SetEnvironment("Text", glyph, cascades: false); text.SetEnvironment("Font", Font.OfSize(fontName, view.Font.FontSize), cascades: false); }; ButtonHandler.ButtonMapper[KnownPropertyNames.Icon] = (handler, view) => { if (view is not Button button) { return; } var selector = (string)button.GetEnvironment(KnownPropertyNames.Icon, cascades: false); (var glyph, string fontName) = Lookup(selector, handler.MauiContext); button.SetEnvironment("Text", glyph, cascades: false); button.SetEnvironment("Font", Font.OfSize(fontName, view.Font.FontSize), cascades: false); }; ImageHandler.ImageMapper[KnownPropertyNames.Icon] = ImageMapper; ImageHandler.ImageMapper[KnownPropertyNames.Color] = ImageMapper; ImageHandler.ImageMapper[KnownPropertyNames.Size] = ImageMapper; return(builder.ConfigureIconFontsInternal(configureOptions)); }
public static IAppHostBuilder ConfigureIconFonts(this IAppHostBuilder builder, Action <FontOptionsBuilder> configureOptions) { LabelHandler.LabelMapper[KnownPropertyNames.Icon] = (handler, view) => { if (view is not Label label) { return; } var selector = (string)label.GetValue(FontIcon.IconProperty); (var glyph, string fontName) = Lookup(selector, handler.MauiContext); label.Text = glyph; label.FontFamily = fontName; }; ButtonHandler.ButtonMapper[KnownPropertyNames.Icon] = (handler, view) => { if (view is not Button button) { return; } var selector = (string)button.GetValue(FontIcon.IconProperty); (var glyph, string fontName) = Lookup(selector, handler.MauiContext); button.Text = glyph; button.FontFamily = fontName; }; ImageHandler.ImageMapper[KnownPropertyNames.Icon] = ImageMapper; ImageHandler.ImageMapper[KnownPropertyNames.Color] = ImageMapper; ImageHandler.ImageMapper[KnownPropertyNames.Size] = ImageMapper; return(builder.ConfigureIconFontsInternal(configureOptions)); }