用于提供呈现文本字体的属性键。这些值是 font 的实例。默认值为 null,指示应该根据属性执行 font 的正常分辨率。
textlayout 和 attributedcharacteriterator 根据 textattribute 的 map 进行工作。通常,所有属性都被检查,并被用于选择和配置 font 实例。然而,如果存在 font 属性,将使用其关联 font。这为用户提供了一种将字体的分辨率属性重写到 font,或强制使用特定 font 实例的方法。这还允许用户在可以子类化 font 的情况下指定 font 的子类。
font 适用于特殊情形,在这些情形下,客户端已经拥有 font 实例但是仍然需要使用基于 map 的 api。通常,map 中除了 font 属性以外没有其他属性。对于基于 map 的 api,常见情形是单独指定所有属性,因此无需 font。
但是,如果 font 和其他属性都存在于 map 中,那么呈现系统会将 font 中定义的属性与附加属性合并。此合并过程将 textattributes 分为两组。一组(“主要”组)被认为是字体的选择和规格行为的基础。这些属性有 family、weight、width、posture、size、transform、superscript 和 tracking。另一组(“次要”组)由除了 font 自身以外的所有其他已定义属性组成。
要生成新的 map,首先需要从 font 属性获得 font,并将它的所有 属性提取为一个新的 map。然后,只将取自原始 map 的次要 属性添加到新 map 的属性中。因此,主要属性的值仅取自 font,而次要属性的值源自 font,但可以用 map 中的其他值重写它们。
注:font 的基于 map 的构造方法和 derivefont 方法不处理 font 属性,因为这些属性用于创建新的 font 对象。相反,font.getfont(map) 应该用于处理 font 属性。
- 另请参见:
font