我正在努力使我必须绘制的文字对齐中心。我使用ID2D1RenderTarget::DrawTextLayout method。问题在于,如果我将文本水平对齐设置为DWRITE_TEXT_ALIGNMENT_LEADING
(默认值),则会自动绘制文本,但如果我将此值更改为DWRITE_TEXT_ALIGNMENT_CENTER
,则文本会向右移动。
示例字符串是
Internal Amazing
Scupper
以下是结果(第一个是对齐前导):
答案 0 :(得分:3)
我的评论作为答案(是的,猜对了:)):
只是一个简单的猜测:你是否检查了布局框的最大宽度 是不是太广泛了,所以中心会在右边那边结束?
IDWriteTextLayout
方法使用的ID2D1RenderTarget::DrawTextLayout
定义了布局框的最大宽度,它决定了文本的居中位置。它可以通过界面的methods进行操作(GetMaxWidth和SetMaxWidth)。