Exemple #1
0
        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));
        }