2012-03-30 2 views
2

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

У меня есть ряд 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, он находится под ним (помните, что у меня есть группа из них, упакованных рядом друг с другом). Кроме того, чтобы получить его, чтобы расширить полностью я никогда изначально установить Height, так что если я пытаюсь получить доступ к нему позже я NaNActualHeight никогда не меняется от 26.6, независимо от того, сколько строк она расширяется, чтобы быть)

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

ответ

5

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

+0

Отлично работает, спасибо! – pseudosudo

Смежные вопросы