DirectWrite 通过 IDWriteTextAnalysisSink::SetLineBreakpoints() 提供换行信息。但是,我还需要根据Unicode Annex #29: Unicode Text Segmentation确定单词边界。
有没有办法使用 DirectWrite 做到这一点?如果没有,有哪些替代方案可以与 Windows 桌面中的 DirectWrite 文本布局系统以及 WinRT 一起使用?
DirectWrite 通过 IDWriteTextAnalysisSink::SetLineBreakpoints() 提供换行信息。但是,我还需要根据Unicode Annex #29: Unicode Text Segmentation确定单词边界。
有没有办法使用 DirectWrite 做到这一点?如果没有,有哪些替代方案可以与 Windows 桌面中的 DirectWrite 文本布局系统以及 WinRT 一起使用?
我可以确认直到 Windows 8.1 的 DirectWrite 不支持 UAX 29(仅支持 LB UAX 14)。至于直接由操作系统提供的替代方案,Windows.Data.Text ( http://code.msdn.microsoft.com/windowsapps/Text-Segmentation-API-be73de71 ) 或扩展语言服务 ( http://code.msdn.自 Windows 7 以来一直存在的microsoft.com/windowsapps/Extended-Linguistic-ELS-d04c606a)可能会有所帮助,但我不相信其中任何一个都支持 UAX 29 的直接实现。