Я пишу приложение для 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
, поэтому, если я попытаюсь получить к нему доступ позже, я получаю NaN
(и ActualHeight
никогда не меняется с 26,6, независимо от того, на сколько строк он будет расширяться)
Я ищу способ динамически сдвинуть TextBlocks
под ним на величину, необходимую для отображения текста целиком, но я не знаю "правильного" способа сделать это.(на аналогичном примечании: жесткое кодирование Margin
не подходит, особенно для динамического расширения текста, есть ли "RelativeLayout
" (или что-то подобное), который я не смог найти?)