0

在示例应用程序 DWriteSimpleHelloWorld 中,我呈现了一个文本

wszText_ = L"Hello World using Direct\u00ADWrite!";

到 DWrite HwndRenderTarget- 有效地,到我的应用程序的窗口。我DrawText使用ID2D1HwndRenderTarget. 我希望行为符合 ­在 Web 浏览器中呈现包含实体(软连字符或音节连字符)的文本字符串。

如果窗口足够宽以适合呈现的短语的宽度,我会看到如下文本

Hello World using DirectWrite!

但是,当我调整窗口大小以使短语的尾部无法放入窗口时,我看到:

Hello World using Direct
Write!

而网络浏览器会在第一行的末尾用连字符呈现此文本:

Hello World using Direct-
Write!

我的目的是让用户在我的DWrite应用程序中为长词插入连字符提示,但我看到的好像\u00AD是一个“隐藏”的空格。

我读过关于软连字符定义和使用的微妙之处(例如,https://www.cs.tut.fi/~jkorpela/shy.html),所以我谦虚地问:观察到的DWrite“设计”行为是? 如果是这样,如何实现在需要时在行尾产生连字符的连字符提示?

请注意,当我使用wszText_字符串的字形索引将文本绘制为使用 方法创建的几何图形GetGlyphRunOutlineIDWriteFontFace,我看到一个字符串在其应有的位置包含一个连字符:

Hello World using Direct-Write!
4

0 回答 0