gpt4 book ai didi

xamarin - 默认字体系列是什么?

转载 作者:行者123 更新时间:2023-12-04 16:01:50 24 4
gpt4 key购买 nike

这将返回 null:

DefaultFontFamily = Font.SystemFontOfSize(NamedSize.Default).FontFamily;

还有这个:

DefaultFontFamily = new Label().FontFamily;

正确的做法是什么?

最佳答案

没有正确的方法来做到这一点——因为这里没有跨平台的“默认字体系列”,而且它是特定于平台的。

要进一步详细说明,请参阅源代码中定义的此属性 Label ,

public static readonly BindableProperty FontFamilyProperty = FontElement.FontFamilyProperty;

它又引用了 FontElement 中定义的依赖属性,

public static readonly BindableProperty FontFamilyProperty =
BindableProperty.Create("FontFamily", typeof(string), typeof(IFontElement), default(string),
propertyChanged: OnFontFamilyChanged);

或您为 SystemFontOfSize 引用的静态方法.

public static Font SystemFontOfSize(NamedSize size)
{
var result = new Font { NamedSize = size };
return result;
}

如您所见,在这两种情况下,根据源代码,FontFamily 的值 'null' 并不意外。 (在第一种情况下,依赖属性被定义为默认值 default(string),它转换为 null,在第二种情况下,FontFamily 的值永远不会设置)

同样适用于 Font.Default .在进一步挖掘时,您会发现 IsDefault定义如下:

public bool IsDefault
{
get { return FontFamily == null && FontSize == 0 && NamedSize == NamedSize.Default && FontAttributes == FontAttributes.None; }
}

因此,如果 FontFamilynull,则它是 xamarin forms 生态系统中的默认值


Label 确实在特定平台上呈现时,除非它的 FontFamily 属性专门从 'null' 修改为某个值, native 控件上的字体属性也从未被修改。因此 native 控件使用该平台的默认字体系列呈现。

为了获得默认字体,您必须 implement native-services, and use dependency-injection获得该值。

有关用于 Label 的 native 控件的更多详细信息 - 您可以引用此 link .

关于xamarin - 默认字体系列是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44088536/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com