C++ DirectWrite对齐文本中心

C++ DirectWrite对齐文本中心,c++,text,directx,direct2d,directwrite,C++,Text,Directx,Direct2d,Directwrite,我正在尝试将必须绘制的文本居中对齐。我用。问题是,如果我将文本水平对齐设置为DWRITE\u text\u alignment\u LEADING(默认值),则文本绘制会出现问题,但如果我将此值更改为DWRITE\u text\u alignment\u CENTER,则文本会向右移动 示例字符串是 Internal Amazing Scupper 以下是结果(第一个是一致性领先): 我的评论作为回答(是的,猜对了:): 只是一个简单的猜测:你是否检查了布局框的最大宽度 不是太宽,所以中心

我正在尝试将必须绘制的文本居中对齐。我用。问题是,如果我将文本水平对齐设置为
DWRITE\u text\u alignment\u LEADING
(默认值),则文本绘制会出现问题,但如果我将此值更改为
DWRITE\u text\u alignment\u CENTER
,则文本会向右移动

示例字符串是

Internal Amazing 
Scupper
以下是结果(第一个是一致性领先):

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


只是一个简单的猜测:你是否检查了布局框的最大宽度 不是太宽,所以中心会在右边结束

ID2D1RenderTarget::DrawTextLayout
方法使用的
IDWriteTextLayout
定义布局框的最大宽度,该宽度确定文本居中的位置。它可以通过界面的操作(和)。

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


只是一个简单的猜测:你是否检查了布局框的最大宽度 不是太宽,所以中心会在右边结束

ID2D1RenderTarget::DrawTextLayout
方法使用的
IDWriteTextLayout
定义布局框的最大宽度,该宽度确定文本居中的位置。它可以通过界面的操作(和)。

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


只是一个简单的猜测:你是否检查了布局框的最大宽度 不是太宽,所以中心会在右边结束

ID2D1RenderTarget::DrawTextLayout
方法使用的
IDWriteTextLayout
定义布局框的最大宽度,该宽度确定文本居中的位置。它可以通过界面的操作(和)。

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


只是一个简单的猜测:你是否检查了布局框的最大宽度 不是太宽,所以中心会在右边结束



ID2D1RenderTarget::DrawTextLayout
方法使用的
IDWriteTextLayout
定义布局框的最大宽度,该宽度确定文本居中的位置。它可以通过界面的大小(和)进行操作。

只是一个简单的猜测:您是否检查了布局框的最大宽度是否太宽,所以中心将在右侧结束?@Gnietschow如何将布局框的最大大小设置为包含文本的矩形的面积?也就是说,如何获取文本区域的边界?@Gnietschow顺便说一句,您的评论是正确的,请写下您的答案。我对directwrite不太熟悉,但您似乎可以使用方法
determinimWidth
()计算文本所需的最小宽度您的
IDWriteTextLayout
。只是一个快速猜测:您是否检查了布局框的最大宽度是否太宽,所以中心将在右侧结束?@Gnietschow我如何将布局框的最大大小设置为包含文本的矩形的面积?也就是说,如何获取文本区域的边界?@Gnietschow顺便说一句,您的评论是正确的,请写下您的答案。我对directwrite不太熟悉,但您似乎可以使用方法
determinimWidth
()计算文本所需的最小宽度您的
IDWriteTextLayout
。只是一个快速猜测:您是否检查了布局框的最大宽度是否太宽,所以中心将在右侧结束?@Gnietschow我如何将布局框的最大大小设置为包含文本的矩形的面积?也就是说,如何获取文本区域的边界?@Gnietschow顺便说一句,您的评论是正确的,请写下您的答案。我对directwrite不太熟悉,但您似乎可以使用方法
determinimWidth
()计算文本所需的最小宽度您的
IDWriteTextLayout
。只是一个快速猜测:您是否检查了布局框的最大宽度是否太宽,所以中心将在右侧结束?@Gnietschow我如何将布局框的最大大小设置为包含文本的矩形的面积?也就是说,如何获取文本区域的边界?@Gnietschow顺便说一句,您的评论是正确的,请写下您的答案。我对directwrite不太熟悉,但您似乎可以使用方法
determinimWidth
()计算文本所需的最小宽度您的
IDWriteTextLayout
。此外,宽度是您第一次调用CreateTextLayout时的参数。此外,宽度是您第一次调用CreateTextLayout时的参数。此外,宽度是您第一次调用CreateTextLayout时的参数。此外,宽度是您第一次调用CreateTextLayout时的参数。