我有一个 TextBlock,里面有一长串我想换行的文本。我已将 TextBlock 放置在 ViewBox 中,希望在仍然换行时更改文本大小,但这似乎不会发生。 ViewBox 只是调整 TextBox 的大小,以便所有文本都适合一行,从而使文本非常小。

如何在仍然使用 TextWrapping 的同时使用 ViewBox 调整文本大小。

这是我的代码:

<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 也是如此。

最佳答案

只需在 TextBlock 上设置一个宽度。

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

windows-store-apps - 当放置在 ViewBox 中时,TextBlock 文本不会换行-LMLPHP

所以 ViewBox 将放大/缩小其全部内容。如果您不通过在 TextBlock 上设置宽度来限制其内容,则 ViewBox 将为其提供无限的扩展空间。您还可以添加宽度和高度在 Grid 内的根 ViewBox 并将元素放在其中,然后整个批次将根据 ViewBox 的宽度进行缩放。

在图像中,TextBlock 100 的宽度被放大为 ViewBox 的宽度,即 500。所以要得到你想要的环绕,只需调整 TextBlock 的宽度,直到它看起来不错

(显然它应该说三行,但我不是为此重新上传)

关于windows-store-apps - 当放置在 ViewBox 中时,TextBlock 文本不会换行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17717999/

10-13 00:13