Приложение для Windows 8.1: определение усечения текста в пользовательском интерфейсе для TextBlock с применением переноса, максимального количества строк или максимальной высоты - PullRequest
0 голосов
/ 31 марта 2019

У меня есть требование определить, обрезается ли текст в пользовательском интерфейсе программно с применением переноса, при условии, что обрезка слов не применяется.

Это настольное приложение 8.1, использующее xaml, c #.

Это многонациональное приложение с динамическим текстом.Ниже приведен пример TextBlock.

<TextBlock Text="{StaticResource Title}" FontSize="34" Maxwidth="230" Margin="0,20,0,0" 
           TextWrapping="Wrap" Maxlines="3"/> 

1 Ответ

0 голосов
/ 18 апреля 2019

Наконец я пришел к ответу с помощью вышеупомянутых комментариев.Вот шаги:

  1. Определите высоту / ширину текстового блока с примененным выше ограничением.
  2. Затем удалите ограничение и измерьте высоту / ширину, используя [TextBlock].Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));
  3. Сравните предыдущую и текущую высоту / ширину.Если текущая ширина / высота больше, чем ширина / высота ограничения, текст обрезается.
...