DWRITE_SCRIPT_PROPERTIES 结构 (dwrite_1.h)

DWRITE_SCRIPT_PROPERTIES 结构指定插入点导航和对齐的脚本属性。

语法

struct DWRITE_SCRIPT_PROPERTIES {
  UINT32 isoScriptCode;
  UINT32 isoScriptNumber;
  UINT32 clusterLookahead;
  UINT32 justificationCharacter;
  UINT32 restrictCaretToClusters : 1;
  UINT32 usesWordDividers : 1;
  UINT32 isDiscreteWriting : 1;
  UINT32 isBlockWriting : 1;
  UINT32 isDistributedWithinCluster : 1;
  UINT32 isConnectedWriting : 1;
  UINT32 isCursiveWriting : 1;
  UINT32 reserved : 25;
};

成员

isoScriptCode

给定脚本的标准化四个字符代码。

注意 这些脚本仅包括常规 Unicode 脚本,而不包括用于书目区分的任何其他 ISO 15924 脚本。
 

isoScriptNumber

标准化的数字代码,范围为 0-999。

clusterLookahead

用于估计复杂脚本的展望的字符数。 拉丁语和所有假名通常为 1。 索引脚本最多为 15 个,其他大多数脚本为 8 个。

注意 组合标记和变体选择器可以生成比这些预想时间更长的群集,因此此估计值被视为典型的语言用法。 必须单独显式测试音调符号。
 

justificationCharacter

用于延长给定脚本的相应字符,以便进行对齐。 例如:

  • 阿拉伯语 - U+0640 Tatweel
  • 奥格汉姆 - U+1680 奥格汉姆太空标记

restrictCaretToClusters

将插入点限制为整个群集,如泰语和 Devanagari。 默认情况下,阿拉伯语等脚本允许在群集之间导航。 其他群集(如泰语)始终在整个群集中导航。

usesWordDividers

该语言在单词之间使用分隔符,例如拉丁语或埃塞俄比亚文单词空间之间的空格。 示例包括拉丁语、希腊语、Devanagari 和埃塞俄比亚文。 不包括中文、韩语和泰语。

isDiscreteWriting

这些字符是彼此独立的单位。 这包括块脚本和群集脚本。 示例包括拉丁文、希腊语、西里尔文、希伯来文、中文和泰文。

isBlockWriting

语言是块脚本,在字符之间扩展。 示例包括中文、日语、韩语和注音。

isDistributedWithinCluster

该语言在字形群集内是对齐的,而不仅仅是字形群集之间的对齐,例如泰语 Lu 和 Sara Am (U+E026、U+E033) 字符序列,它们形成单个群集,但仍在它们之间扩展。 示例包括泰语、老挝语和高棉文。

isConnectedWriting

脚本的群集 (相互连接,例如基线链接的 Devanagari) ,并且不会在字符之间添加分隔。

注意 草书链接的脚本(如阿拉伯语)也 (连接,但并非所有连接的脚本都是草书) 。
 
示例包括 Devanagari、阿拉伯语、叙利亚语、孟加拉语、古穆基语和 Ogham。 不包括拉丁语、中文和塔纳语。

isCursiveWriting

该脚本自然是草书 (阿拉伯语和叙利亚语) ,这意味着它使用其他对齐方法,如 kashida 扩展,而不是字符间间距。

注意 尽管其他脚本(如拉丁文和日语)可能实际支持手写草书形式,但它们不被视为草书。
 
示例包括阿拉伯语、叙利亚语和蒙古语。 不包括 Thaana、Devanagari、拉丁语和中文。

reserved

保留

要求

   
最低受支持的客户端 适用于 Windows 7 的 Windows 8 和平台更新 [仅限桌面应用]
最低受支持的服务器 Windows Server 2012 和适用于 Windows Server 2008 R2 的平台更新 [仅限桌面应用]
标头 dwrite_1.h

请参阅

IDWriteTextAnalyzer1::GetScriptProperties