Как получить экстент текста при использовании ID2D1RenderTarget::DrawText

С Direct2D я могу использовать ID2D1RenderTarget::DrawText для рисования текста, но как мне получить экстент текста перед рисованием? Обратите внимание, что я хочу сделать это под Windows 8 RT.

Спасибо


person John Gaby    schedule 20.12.2012    source источник
comment
Может быть, Font.MeasureString (doc) поможет вам, но я никогда не проверял это.   -  person Gnietschow    schedule 21.12.2012
comment
Я думаю, это может вам помочь, stackoverflow.com/questions/13587532/   -  person zdd    schedule 21.12.2012


Ответы (1)


Спасибо за ответ. Я нашел решение. Мне нужно было создать IDWriteTextLayout для текстового блока, а затем вызвать его метод GetMetrics, который вернет размер текста.

Спасибо еще раз за помощь.

person John Gaby    schedule 21.12.2012
comment
Да, CreateTextLayout + GetMetrics дает поле DWRITE_TEXT_METRICS::width и height. Обратите внимание, что если вы создаете IDWriteTextLayout, вы должны просто передать созданный IDWriteTextLayout в DrawTextLayout вместо повторного вызова DrawText (для которого нет необходимости размещать текст во второй раз). - person Dwayne Robinson; 21.09.2013