2015-06-18 224 views
0

我想對齊居中我要畫的文本。我使用ID2D1RenderTarget::DrawTextLayout method。問題是,如果我將文本水平對齊設置爲DWRITE_TEXT_ALIGNMENT_LEADING(默認值),則會精確繪製文本,但如果將此值更改爲DWRITE_TEXT_ALIGNMENT_CENTER,文本會右移。DirectWrite對齊文本中心

的例子字符串是

Internal Amazing 
Scupper 

以下是結果(第一次是對準領先):

enter image description here enter image description here

+2

只是一個快速猜測:你檢查過最大寬度你的佈局框不是太寬,所以中心會在右邊結束? – Gnietschow

+0

@Gnietschow如何設置我的佈局框的最大尺寸等於包含我的文本的矩形區域?也就是說,我怎樣才能獲得我的文本區域的邊界? – Nick

+0

@Gnietschow順便說一句,您的評論是正確的,請寫下您的答案。 – Nick

回答

3

我作爲一個答案評論(是啊,猜對了:) ):

只是一個快速猜測:你有沒有檢查你的佈局框 的最大寬度是不是太寬,所以中心會在那裏結束?

通過ID2D1RenderTarget::DrawTextLayout方法中使用的定義IDWriteTextLayout佈局框,其確定其中文本居中的最大寬度。它可以通過界面的methodsGetMaxWidthSetMaxWidth)進行操縱。

+0

此外,寬度是您第一次調用CreateTextLayout時的參數。 –