首页 > 其他分享 >MAUI新生4.5-字体图像集成Font&Image

MAUI新生4.5-字体图像集成Font&Image

时间:2022-12-22 22:00:59浏览次数:49  
标签:4.5 Image 字体库 文件夹 字体 图像 MAUI ttf 图标

一、字体集成:MAUI默认使用OpenSans字体,通过引入新的字体库和图标字体库为案例说明

1、案例的字体库,均在www.iconfont.cn下载

(1)字体库为阿里巴巴普惠体的Thin35,Alibaba_PuHuiTi_2.0_35_Thin_35_Thin.ttf

(2)字体图标库的下载方式详见【三、字体图标下载方式】,将下载的字体图标库重命名为MyIconFont.ttf

 

2、将字体库ttf文件,复制到Resources\Fonts文件夹下

(1)复制到Resources\Fonts文件夹的ttf字体库,文件属性的生成操作将自动设置为 MauiFont

 

 

 

 

(2)如果要复制到其它文件夹,或Fonts文件夹下的子文件夹,需要修改两个地方:一是将文件属性的生成操作设置为 MauiFont,二是添加项目属性的<ItemGroup>,如下: 

<!--推荐:模板默认设置,载入Resources\Fonts文件夹下的所有ttf字体库-->
<ItemGroup>
   <MauiFont Include="Resources\Fonts\*" />
</ItemGroup>

<!--载入Resources\Fonts文件夹及其子文件夹下的所有ttf字体库-->
<ItemGroup>
   <MauiFont Include="Resources\Fonts\**\*" />
</ItemGroup>

<!--载入Resources\MyFonts文件夹下的所有ttf字体库-->
<ItemGroup>
   <MauiFont Include="Resources\MyFonts\*" />
</ItemGroup>

 

 3、在MauiProgram.cs入口文件中,注册字体库

 

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder();
        builder
            .UseMauiApp<App>()
            .ConfigureFonts(fonts =>
            {
                fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular"); //模板默认注册的字体库
                fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold"); //模板默认注册的字体库
                fonts.AddFont("MyIconFont.ttf", "MyIconFont"); //注册MyIconFont.ttf字体库,别名为MyIconFont
                fonts.AddFont("Alibaba_PuHuiTi_2.0_35_Thin_35_Thin.ttf", "AliThin35");//注册Alibaba_PuHuiTi_2.0_35_Thin_35_Thin.ttf字体库,别名为AliThin35
            });
#if DEBUG
        builder.Logging.AddDebug();
#endif

        return builder.Build();
    }
}

 

 

4、使用字体

 

<ContentPage
    ......">
    <StackLayout>
        <!--
            ①FontFamily设置字体,使用别名AliThin35;
            ②FontAttributes设置斜体、加粗等属性
            ③FontSize设置字体大小
            ④FontAutoScalingEnabled设置文本缩放首选项
        -->
        <Label
            FontAttributes="Bold,Italic"
            FontAutoScalingEnabled="True"
            FontFamily="AliThin35"
            FontSize="30"
            Text="字体基本使用" />
        
        <!--
            ①通过元素属性设置FontFamily属性
            ②OnPlatform为泛型类,实例化时,通过x:TypeArguments设置泛型参数
            ③OnPlatform的IList<On>属性,设置不同平台的字体
        -->
        <Label FontSize="30" Text="每个平台使用不一样的字体">
            <Label.FontFamily>
                <OnPlatform x:TypeArguments="x:String">
                    <On Platform="iOS" Value="OpenSansRegular" />
                    <On Platform="Android" Value="AliThin35" />
                    <On Platform="WinUI" Value="OpenSansSemibold" />
                </OnPlatform>
            </Label.FontFamily>
        </Label>
        
        <!--
            ①ImageButton的Source属性为ImageSource类型,可以设置字体图标,有ImageSource类型属性的控件,还包括Image等
            ②FontFamily设置字体,使用别名MyIconFont
            ③Glyph设置图标的unicode字符值
            ④Size和Color,设置大小和颜色
        -->
        <ImageButton>
            <ImageButton.Source>
                <FontImageSource
                    FontFamily="MyIconFont"
                    Glyph="&#xe663;"
                    Size="20"
                    Color="DarkBlue" />
            </ImageButton.Source>
        </ImageButton>
    </StackLayout>
</ContentPage>

 

 

 

 

二、图像集成

1、基本介绍

  • 图像集成的主要功能是,在项目的单个位置指定的图像,可以根据不同平台要求,自动生成不同分辨率的图像,在应用图标、初始画面、导航图标等功能上会使用到。
  • 建议使用SVG矢量格式图像,如使用SVG图像,在生成不同平台要求的图像是,会自动转为png图片格式。如在应用中引用图片资源,应将SVG图像的后缀修改为png,如dotnet_bot.svg矢量图,使用时用dotnet_bot.png
  • 建议将SVG图像复制到默认的文件夹,如应用图标放到Resources\AppIcon文件夹下,初始画面放到Resources\Splash,其它图像放到Resources\Images,这样系统会将图像属性的生成操作自动设置为相应格式,否则就要手动设置,其中应用图标设置为MauiIcon,初始画面设置为MauiSplashScreen,集成图像设置为MauiImage。
  • 为兼容Android,图像名称应使用小写字母,如dotnet_bot.svg

 

2、基本使用:双击项目,设置项目属性,在ItemGroup元素中,进行图像集成的设置

<ItemGroup>
    <!--
        ①Include属性设置应用图标的背景图
        ②ForegroundFile属性设置应用图标的前景图
        ③Color重新着色背景
        ④TintColor重新着色前景
    -->
    <MauiIcon Include="Resources\AppIcon\appicon.svg" ForegroundFile="Resources\AppIcon\appiconfg.svg" Color="#512BD4" TintColor="#66B3FF"/>

    <!--
        ①Include设置初始画面,BaseSize设置图像基准大小,Color设置背景色,TintColor添加新的色调
        ②通过设置Resize="false",禁止调整矢量图的大小
    -->
    <MauiSplashScreen Include="Resources\Splash\splash.svg" Color="#512BD4" TintColor="#66B3FF" BaseSize="128,128" />

    <!--
        ①【Include="Resources\Images\*"】,加载Images文件夹下的所有图像
        ②【Update="Resources\Images\dotnet_bot.svg"】,加载指定图像,BaseSize设置图像基准大小
        ③使用dotnet_bot.svg,【<Image Aspect="Center" Source="dotnet_bot.png" />】
    -->
    <MauiImage Include="Resources\Images\*" />
    <MauiImage Update="Resources\Images\dotnet_bot.svg" BaseSize="168,208" />
    ......
</ItemGroup>

 

 

 

三、字体图标下载方式(以www.iconfont.cn为例):

1、找到需要的字体图标,并添加入库

 

 2、打开购物车,下载字体代码

 

 

3、复制ttf字体到Resources\Fonts文件夹下(建议重命名),并查询字体的unicode字符值

 

标签:4.5,Image,字体库,文件夹,字体,图像,MAUI,ttf,图标
From: https://www.cnblogs.com/functionMC/p/16998314.html

相关文章

  • MinGW编译OpenCV4.5(64位/32位通用,附编译完成包下载)
    前言因为本人经常用MinGW编译器,而且习惯用64位,但是上网搜索配置方法发现很多都是32位的,而且版本差距太大的话成功率的也不是很高,不知道是不是我自己的原因,然后在面向浏......
  • HTML-background-image
    background-image:用于设置需要显示背景图片;例如-->background-image:url(demo.jpg); 大家知道ulr()中是填写路径:(现在假设背景图片名字叫做demo.jpg)1、如果该css文件和......
  • MAUI新生4.4-笔刷Brush
    Brush用于定义控件的外轮廓、背景等属性的值,是为属性赋值的。如Shape类控件的Stroke或Fill属性、Border控件的Stroke属性、Shadow的Brush属性、VisualElement派生类控件的B......
  • iOS开发讲解SDWebImage,你真的会用吗?
    SDWebImage作为目前最受欢迎的图片下载第三方框架,使用率很高。但是你真的会用吗?本文接下来将通过例子分析如何合理使用SDWebImage。使用场景:自定义的UITableViewCell上有图......
  • 通过FormData上传bolb/image/file对象
    FormData是HTML原生支持的对象,它主要用来提交表单信息,与其它表单提交不同的是,它可以提交二进制数据。比如:此前我们提交文件到服务器都需要通过form表单来完成,而现在我们就可......
  • MAUI新生4.1-控件视图:控件总览(未完待续)
    根据控件的功能特点,以及个人的习惯,我将MAUI的控件划分为以下几个大类:Page页面类Layout布局类Content单一内容类Collection集合内容类Form表单类Shape形状类辅助功......
  • [深度学习] ImageAI库使用笔记
    dates:2020-08-0713:31:38+0800tags:-深度学习-PythonImageAI是一个Python库,旨在使开发人员,研究人员和学生能够使用简单的几行代码来构建具有独立的深度学习......
  • [深度学习] ImageAI库使用笔记
    dates:2020-08-0713:31:38+0800tags:-深度学习-PythonImageAI是一个Python库,旨在使开发人员,研究人员和学生能够使用简单的几行代码来构建具有独立的深度学习......
  • Linux中为AppImage类型的软件添加应用程序图标
    有的时候Linux的一些软件是不带桌面图标的,可能直接通过命令启动程序,但是习惯了GUI界面的话就需要创建一个图标来加快效率了。首先明白图标展示的一些原理:应用要能展示......
  • 医学图像分析 Medical Image Analysis
    医学图像分析MedicalImageAnalysis大规模标注图像数据集的可用性和监督深度学习方法的最新进展使端到端推导代表性图像特征,可以影响各种图像分析问题。然而,这种有监督的方......