Текст TextBlock не переносится при размещении внутри ViewBox

У меня есть TextBlock с длинной строкой текста, которую я хочу обернуть. Я поместил TextBlock в ViewBox, ожидая изменения размера текста, пока все еще обертывается, однако это, похоже, не происходит. ViewBox просто изменяет размер TextBox, так что весь текст подходит для одной строки, что делает текст очень маленьким.

Как я могу использовать ViewBox для изменения размера текста при использовании TextWrapping.

Вот мой код:

<Viewbox>
    <TextBlock Text="The Option text can also dynamically grow/shrink to fit more content. More text to go here....................." TextWrapping="Wrap"/>
</Viewbox>

Это часть приложения для хранения Windows 8, поэтому WinRT Xaml.

Ответ 1

Просто установите ширину на TextBlock.

        <Viewbox Width="500">
            <TextBlock Width="100" TextWrapping="Wrap">This is the text that long and on two lines.</TextBlock>
        </Viewbox>

TextBlock with width 100 in ViewBox with width 500

Таким образом, ViewBox будет увеличивать/уменьшать все содержимое. Если вы не ограничиваете его содержимое, задав ширину в TextBlock, ViewBox предоставит ей бесконечное пространство для расширения. Вы также можете добавить корень Grid с шириной и высотой в ViewBox и выложить свои элементы в этом, тогда вся партия будет увеличена в соответствии с шириной ViewBox.

На изображении ширина TextBlock 100 будет увеличена до ширины ViewBox, которая равна 500. Чтобы получить требуемую упаковку, просто подкорректируйте ширину TextBlock, пока она не станет красивой.

(Очевидно, он должен сказать три строки, но я не повторно загружаю только для этого)