Automatic vertical scroll bar in WPF TextBlock? Automatic vertical scroll bar in WPF TextBlock? wpf wpf

Automatic vertical scroll bar in WPF TextBlock?


Wrap it in a scroll viewer:

<ScrollViewer>    <TextBlock /></ScrollViewer>

NOTE this answer applies to a TextBlock (a read-only text element) as asked for in the original question.

If you want to show scroll bars in a TextBox (an editable text element) then use the ScrollViewer attached properties:

<TextBox ScrollViewer.HorizontalScrollBarVisibility="Disabled"         ScrollViewer.VerticalScrollBarVisibility="Auto" />

Valid values for these two properties are Disabled, Auto, Hidden and Visible.


can use the following now:

<TextBox Name="myTextBox"          ScrollViewer.HorizontalScrollBarVisibility="Auto"         ScrollViewer.VerticalScrollBarVisibility="Auto"         ScrollViewer.CanContentScroll="True">SOME TEXT</TextBox>


Something better would be:

<Grid Width="Your-specified-value" >    <ScrollViewer>         <TextBlock Width="Auto" TextWrapping="Wrap" />    </ScrollViewer></Grid>

This makes sure that the text in your textblock does not overflow and overlap the elements below the textblock as may be the case if you do not use the grid. That happened to me when I tried other solutions even though the textblock was already in a grid with other elements. Keep in mind that the width of the textblock should be Auto and you should specify the desired with in the Grid element. I did this in my code and it works beautifully. HTH.