我想對齊居中我要畫的文本。我使用ID2D1RenderTarget::DrawTextLayout method。問題是,如果我將文本水平對齊設置爲DWRITE_TEXT_ALIGNMENT_LEADING
(默認值),則會精確繪製文本,但如果將此值更改爲DWRITE_TEXT_ALIGNMENT_CENTER
,文本會右移。DirectWrite對齊文本中心
的例子字符串是
Internal Amazing
Scupper
以下是結果(第一次是對準領先):
我想對齊居中我要畫的文本。我使用ID2D1RenderTarget::DrawTextLayout method。問題是,如果我將文本水平對齊設置爲DWRITE_TEXT_ALIGNMENT_LEADING
(默認值),則會精確繪製文本,但如果將此值更改爲DWRITE_TEXT_ALIGNMENT_CENTER
,文本會右移。DirectWrite對齊文本中心
的例子字符串是
Internal Amazing
Scupper
以下是結果(第一次是對準領先):
我作爲一個答案評論(是啊,猜對了:) ):
只是一個快速猜測:你有沒有檢查你的佈局框 的最大寬度是不是太寬,所以中心會在那裏結束?
通過ID2D1RenderTarget::DrawTextLayout
方法中使用的定義IDWriteTextLayout
佈局框,其確定其中文本居中的最大寬度。它可以通過界面的methods(GetMaxWidth和SetMaxWidth)進行操縱。
此外,寬度是您第一次調用CreateTextLayout時的參數。 –
只是一個快速猜測:你檢查過最大寬度你的佈局框不是太寬,所以中心會在右邊結束? – Gnietschow
@Gnietschow如何設置我的佈局框的最大尺寸等於包含我的文本的矩形區域?也就是說,我怎樣才能獲得我的文本區域的邊界? – Nick
@Gnietschow順便說一句,您的評論是正確的,請寫下您的答案。 – Nick