如何让ScrollViewer只在其中的texblock高度超过ScrollViewer高度时工作?

时间:2012-12-24 00:31:57

标签: c# silverlight windows-phone-7 xaml

在我的ListBox我展示了不同的内容,包括文字。文字可以长或短。它按ScrollViewer滚动。代码:

<ScrollViewer MaxHeight="300" VerticalAlignment="Top" Grid.Column="1" Grid.Row="1" >
    <TextBlock Style="{StaticResource TextsTextBlock}" Text="{Binding Texts}"  Grid.Column="1" Grid.Row="1" />
</ScrollViewer>

如果文字很短,它也可以正常工作,此文字的高度不会达到MaxHeight的{​​{1}}。我希望ScrollViewer仅在文字较长且高度大于ScrollViewer&#39; s ScrollViewer时才有效,否则 - 它不必工作。

尝试边框

MaxHeight

但它仍然在这个边界滚动。

2 个答案:

答案 0 :(得分:0)

VerticalScrollBarVisibility property设置为Auto

默认值为Visible,表示始终显示滚动条。

相比之下,HorizontalScrollBarVisibility property的默认值为Hidden

答案 1 :(得分:0)

尝试从内部控件中删除一些Grid.属性

<Border BorderBrush="Aqua" BorderThickness="2" MaxHeight="300" VerticalAlignment="Top" Grid.Column="1" Grid.Row="1">       
    <ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled" >
        <TextBlock Text="text" TextWrapping="Wrap"/>
    </ScrollViewer>
</Border>

这适用于一行文字

如果我复制粘贴您的代码,它可以正常工作

enter image description here