Используя объект FormattedText, как мне узнать, какая часть моего текста была на самом деле отображена? - PullRequest
3 голосов
/ 22 мая 2010

Если у меня есть такой код:

FormattedText text = new FormattedText(sTheBook,
      System.Globalization.CultureInfo.CurrentUICulture,
      System.Windows.FlowDirection.LeftToRight, 
      new Typeface("Times New Roman"), 
      13, Brushes.Black);

text.MaxTextWidth = 300;
text.MaxTextHeight = 600;
text.TextAlignment = TextAlignment.Justify;
dc.DrawText(text, new Point(10, 0));

... тогда, если он длинный, на экране будет отображаться только часть текста, который я передал (через sTheBook). Мне нужно знать, сколько было отображено, чтобы я мог отобразить остальные позже! Я легко могу измерить количество текста, но, кажется, глупо делать поиск, рендеринг и повторный рендеринг моего текста снова и снова, пока я не найду ту часть, которая подходит точно.

Я был бы открыт для использования некоторой другой техники рендеринга текста WPF, если бы у нее была эта функциональность.

Спасибо!

1 Ответ

0 голосов
/ 02 апреля 2011

Вы можете просто определить его размер, посмотрев на свойства Ширина и Высота. Это даст вам «желаемый размер» после применения разрыва строки.

...