.NET MAUI 中的字体

您所在的位置:网站首页 fontfamily怎么用 .NET MAUI 中的字体

.NET MAUI 中的字体

#.NET MAUI 中的字体| 来源: 网络整理| 查看: 265

.NET MAUI 中的字体 项目 05/05/2023

默认情况下,.NET 多平台应用 UI (.NET MAUI) 应用在每个平台上使用 Open Sans 字体。 但是,可以更改此默认值,并且可以注册其他字体以在应用中使用。

显示文本的所有控件都定义可设置为更改字体外观的属性:

string 类型的 FontFamily。 FontAttributes,类型 FontAttributes为 ,它是具有三个成员的枚举: None、 Bold和 Italic。 此属性的默认值为 None。 double 类型的 FontSize。 FontAutoScalingEnabled,类型 bool为 ,用于定义应用的 UI 是否反映操作系统中设置的文本缩放首选项。 此属性的默认值为 true。

这些属性由 BindableProperty 对象提供支持;也就是说,它们可以作为数据绑定的目标,并能进行样式设置。

显示文本的所有控件都自动使用字体缩放,这意味着应用的 UI 反映操作系统中设置的文本缩放首选项。

注册字体

真实类型格式 (TTF) 和打开类型字体 (OTF) 字体可以添加到应用并按文件名或别名引用,并在 类的 MauiProgram 方法CreateMauiApp中执行注册。 这是通过在 对象上调用 ConfigureFonts 方法来实现的 MauiAppBuilder 。 然后,在 IFontCollection 对象上调用 AddFont 方法,将所需的字体添加到应用:

namespace MyMauiApp { public static class MauiProgram { public static MauiApp CreateMauiApp() { var builder = MauiApp.CreateBuilder(); builder .UseMauiApp() .ConfigureFonts(fonts => { fonts.AddFont("Lobster-Regular.ttf", "Lobster"); }); return builder.Build(); } } }

在上面的示例中,方法的第一个参数 AddFont 是字体文件名,而第二个参数表示一个可选别名,在使用它时可以引用字体。

通过将字体拖到项目的 Resources\Fonts 文件夹中,可以将字体添加到应用项目中,该字体的生成操作将自动设置为 MauiFont。 这会在项目文件中创建相应的条目。 或者,可以在项目文件中使用通配符注册应用中的所有字体:

字体也可以添加到应用项目的其他文件夹中。 但是,在这种情况下,必须在“属性”窗口中手动将其生成操作设置为 MauiFont。

在生成时,字体将复制到应用包。

注意

通 * 配符指示文件夹中的所有文件都将被视为字体文件。 此外,如果还要包含子文件夹中的文件,请使用其他通配符(例如 Resources\Fonts\**\*)对其进行配置。

使用字体

可以通过设置 FontFamily 控件的 属性来使用已注册的字体,该控件显示文本到字体名称,而无需文件扩展名:

或者,可以通过引用其别名来使用它:

等效 C# 代码如下:

// Use font name Label label1 = new Label { Text = "Hello .NET MAUI!", FontFamily = "Lobster-Regular" }; // Use font alias Label label2 = new Label { Text = "Hello .NET MAUI!", FontFamily = "Lobster" }; 设置字体属性

显示文本的控件可以设置 FontAttributes 属性以指定字体属性:

等效 C# 代码如下:

Label label1 = new Label { Text = "Italics", FontAttributes = FontAttributes.Italic }; Label label2 = new Label { Text = "Bold and italics", FontAttributes = FontAttributes.Bold | FontAttributes.Italic }; 设置字号

显示文本的控件可以设置 FontSize 属性以指定字号。 属性 FontSize 可以设置为值 double :

等效 C# 代码如下:

Label label = new Label { Text = "Font size 24", FontSize = 24 };

注意

该值 FontSize 以与设备无关的单位度量。

禁用字体自动缩放

默认情况下,显示文本的所有控件都启用了字体缩放,这意味着应用的 UI 反映操作系统中设置的文本缩放首选项。 但是,可以通过将基于文本的 控件的 上的 属性设置为 FontAutoScalingEnabledfalse来禁用此行为:

如果要保证文本以特定大小显示,此方法非常有用。

注意

字体自动缩放也适用于字体图标。 有关详细信息,请参阅 显示字体图标。

设置每个平台的字体属性

OnPlatform和 On 类可以在 XAML 中使用来设置每个平台的字体属性。 以下示例设置不同的字体系列和大小:

可以在 DeviceInfo.Platform 代码中使用 属性来设置每个平台的字体属性:

Label label = new Label { Text = "Different font properties on different platforms" }; label.FontSize = DeviceInfo.Platform == DevicePlatform.iOS ? 20 : DeviceInfo.Platform == DevicePlatform.Android ? 22 : 24; label.FontFamily = DeviceInfo.Platform == DevicePlatform.iOS ? "MarkerFelt-Thin" : DeviceInfo.Platform == DevicePlatform.Android ? "Lobster-Regular" : "ArimaMadurai-Black";

有关提供特定于平台的值的详细信息,请参阅 设备信息。 有关标记扩展的信息 OnPlatform ,请参阅 基于平台自定义 UI 外观。

显示字体图标

.NET MAUI 应用可以通过在 对象中 FontImageSource 指定字体图标数据来显示字体图标。 此类派生自 ImageSource 类,具有以下属性:

Glyph – 字体图标的 unicode 字符值,指定为 string。 Size – 一个 double 值,该值指示呈现的字体图标的大小(以设备无关的单位)。 默认值为 30。 此外,此属性可以设置为命名字号。 FontFamily – 一个 string ,表示字体图标所属的字体系列。 Color – 显示字体图标时要使用的可选 Color 值。

此数据用于创建 PNG,该 PNG 可由任何可显示 的视图显示 ImageSource。 此方法允许字体图标(如表情符号)由多个视图显示,而不是将字体图标显示限制为单个文本呈现视图,例如 Label。

重要

字体图标当前只能由其 unicode 字符表示形式指定。

以下 XAML 示例具有视图显示的 Image 单个字体图标:

此代码在视图中显示 Ionicons 字体系列中的 Image XBox 图标。 请注意,虽然此图标的 unicode 字符为 \uf30c,但它必须在 XAML 中转义,因此会变为 。 等效 C# 代码如下:

Image image = new Image { BackgroundColor = Color.FromArgb("#D1D1D1") }; image.Source = new FontImageSource { Glyph = "\uf30c", FontFamily = DeviceInfo.Platform == DevicePlatform.iOS ? "Ionicons" : "ionicons.ttf#", Size = 44 };

以下屏幕截图显示了显示的几个字体图标:

或者,可以使用标记扩展显示字体图标 Fontmage 。 有关详细信息,请参阅 加载字体图标。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3