我正在尝试将我必须绘制的文本居中对齐。我使用ID2D1RenderTarget::DrawTextLayout 方法。问题是,如果我将文本水平对齐设置为DWRITE_TEXT_ALIGNMENT_LEADING
(默认值),则文本会被适当地绘制,但如果我将此值更改DWRITE_TEXT_ALIGNMENT_CENTER
为文本会右移。
示例字符串是
Internal Amazing
Scupper
以下是结果(第一个是对齐领先):
我正在尝试将我必须绘制的文本居中对齐。我使用ID2D1RenderTarget::DrawTextLayout 方法。问题是,如果我将文本水平对齐设置为DWRITE_TEXT_ALIGNMENT_LEADING
(默认值),则文本会被适当地绘制,但如果我将此值更改DWRITE_TEXT_ALIGNMENT_CENTER
为文本会右移。
示例字符串是
Internal Amazing
Scupper
以下是结果(第一个是对齐领先):
我的评论作为答案(是的,猜对了:)):
只是一个快速的猜测:你是否检查过你的布局框的最大宽度不是太宽,所以中心会在右边结束?
IDWriteTextLayout
used byID2D1RenderTarget::DrawTextLayout
方法定义了布局框的最大宽度,它决定了文本的居中位置。它可以通过接口的方法(GetMaxWidth和SetMaxWidth)进行操作。