c++ - DirectWrite 对齐文本中心

标签 c++ text directx direct2d directwrite

我正在尝试将我必须绘制的文本居中对齐。我用 ID2D1RenderTarget::DrawTextLayout method .问题是,如果我将文本水平对齐方式设置为 DWRITE_TEXT_ALIGNMENT_LEADING(默认值),则会仔细绘制文本,但如果我将此值更改为 DWRITE_TEXT_ALIGNMENT_CENTER,则文本会移动对。

示例字符串是

Internal Amazing 
Scupper

结果如下(第一个是alignment leading):

enter image description here enter image description here

最佳答案

我的评论作为答案(是的,猜对了:)):

Just a quick guess: Did you check that the maxwidth your layout box isn't too broad, so the center would end there at the right?

ID2D1RenderTarget::DrawTextLayout 方法使用的IDWriteTextLayout 定义了布局框的最大宽度,它决定了文本居中的位置。它可以被 methods 操纵接口(interface)( GetMaxWidthSetMaxWidth )。

关于c++ - DirectWrite 对齐文本中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30916523/

相关文章:

c++ - 放弃最低分计划

css - 无法正确居中并适合文本和 div

r - 未识别的空白

css - 将文本 float 到文本区域的右侧

c++ - 用纹理坐标重复纹理的部分

c++ - 鼠标单击OpenGL无法围绕其自身中心旋转对象

C++; MPI : Send struct with vector of vectors through MPI

C++ 两个类相互转换并调用它们的函数

c++ - 图形硬件上的最近邻搜索

math - 如何计算像素着色器深度以将在点 Sprite 上绘制的圆渲染为与其他对象相交的球体?