Динамические текстовые блоки - PullRequest
2 голосов
/ 30 марта 2012

Я пишу приложение для Windows Phone, и я хотел бы реализовать функцию «нажмите текст, чтобы развернуть».

У меня есть серия TextBlocks, которые в настоящее время выглядят так, как это повторялось несколько раз:

<TextBlock 
    Name="description" HorizontalAlignment="Left" VerticalAlignment="Top" 
    Margin="12,40,0,0" Width="444"
    TextWrapping="NoWrap" TextTrimming="WordEllipsis" />

[Обратите внимание на последние два: TextWrapping="NoWrap" TextTrimming="WordEllipsis" и отсутствие установленного Height.]

Это показывает одну строку, и когда строка длиннее, чемэкран заканчивается многоточием, что идеально.В настоящее время, когда пользователь нажимает TextBlock, я превращаю TextWrapping в Wrap.Это позволяет тексту занимать столько строк, сколько ему нужно (нужная мне функциональность).

Проблема в том, что когда я поворачиваю TextWrapping в Wrap, он расширяется до TextBlock под ним (запомнитеУ меня куча таких упакована рядом друг с другом).Кроме того, чтобы полностью развернуть его, я никогда не устанавливал Height, поэтому, если я попытаюсь получить к нему доступ позже, я получаю NaNActualHeight никогда не меняется с 26,6, независимо от того, на сколько строк он будет расширяться)

Я ищу способ динамически сдвинуть TextBlocks под ним на величину, необходимую для отображения текста целиком, но я не знаю "правильного" способа сделать это.(на аналогичном примечании: жесткое кодирование Margin не подходит, особенно для динамического расширения текста, есть ли "RelativeLayout" (или что-то подобное), который я не смог найти?)

1 Ответ

5 голосов
/ 30 марта 2012

Вы пытались разместить свои текстовые блоки в StackPanel?Это должно предотвратить перекрытие объектов TextBlock, и вы можете установить их отдельные значения полей, чтобы обеспечить необходимый интервал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...