簡體   English   中英

如何使ScrollViewer僅在其中的texblock的高度大於ScrollViewer的高度時工作?

[英]How to make ScrollViewer work only when texblock in it has height greater than ScrollViewer height?

在我的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>

如果文本較短,並且此文本的高度未達到ScrollViewer MaxHeight ,則此方法也可以MaxHeight 我想讓ScrollViewer僅在文本較長且其高度大於ScrollViewerMaxHeight才能工作,否則-不必工作。

嘗試過的邊界

<Border  BorderBrush="Aqua"  BorderThickness="2" MaxHeight="300" VerticalAlignment="Top" Grid.Column="1" Grid.Row="1">
 <ScrollViewer VerticalAlignment="Top" VerticalScrollBarVisibility="Auto" >
 <TextBlock Style="{StaticResource TextsTextBlock}" Text="{Binding Texts}"  Grid.Column="1" Grid.Row="1" />
 </ScrollViewer>
 </Border>

但它仍在此邊框中滾動。

VerticalScrollBarVisibility屬性設置為Auto

默認值為“ Visible ,這意味着始終顯示滾動條。

相反, HorizontalScrollBarVisibility屬性的默認值為Hidden

嘗試刪除一些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>

這僅適用於一行文本

如果我復制粘貼您的代碼,效果很好

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM