Scrolling a TextBlock

15,379

Solution 1

You might like to refer to the discussion and MSFT confirmation that text control scrolling is still a work in progress as at the current CTP. Beta shouldnt be too far away, hopefully more on this then.

Solution 2

Don't put a height in the textbox. This worked perfectly for me:

    <ScrollViewer Height="192" HorizontalAlignment="Left" Margin="12,34,0,0" Name="scrollViewer1" VerticalAlignment="Top" Width="404">
        <TextBlock VerticalAlignment="Top"  Name="textBlock1" Text="TextBlock" Width="378" TextWrapping="Wrap" />
    </ScrollViewer> 

Solution 3

The below code works : As your child control(ie., textblock) has a height and width that is not equal to the width and height of your scroll viewer and hence the scroll bars don't display. I have just given same height and width as the scroll viewer for the controls defined inside it it works.

<ScrollViewer x:Name="detailsScroller" Height="285" Width="480"  Canvas.Top="76" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
    <Canvas x:Name="infoCanvas" Height="285" Width="480"  >
     <TextBlock x:Name="textblockInfo" TextWrapping="Wrap"  Height="285" Width="480" Canvas.Left="8"/>
     <TextBox x:Name="textboxInfo" TextWrapping="Wrap"  Width="478" AcceptsReturn="True" Height="300" Visibility="Collapsed" />
    </Canvas>
</ScrollViewer>
Share:
15,379
Skoder
Author by

Skoder

Updated on June 04, 2022

Comments

  • Skoder
    Skoder almost 2 years

    I have a TextBlock and a Textbox in the same location. Depending on what mode the user is in, I make one visible and the other collapsed. This is working fine, but how can I make the Textblock scrollable? I figured I should use a ScrollViewer, but I don't know why it's not working. I've tried messing around with the height (auto and fixed), but it won't scroll. My xaml is this:

    <ScrollViewer x:Name="detailsScroller" Height="285" Width="480"  Canvas.Top="76" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
        <Canvas x:Name="infoCanvas" Width="478"  >
         <TextBlock x:Name="textblockInfo" TextWrapping="Wrap"  Width="462" Height="197"  Canvas.Left="8"/>
         <TextBox x:Name="textboxInfo" TextWrapping="Wrap"  Width="478" AcceptsReturn="True" Height="300" Visibility="Collapsed" />
        </Canvas>
    </ScrollViewer>
    

    Thanks!

  • Skoder
    Skoder almost 14 years
    Sorry, forgot to mention, this is for Windows Phone 7. I've edited my original tags. Displaying the scrollbar doesn't work as it simply makes the textbox editable and the textblock doesn't scroll either.
  • Skoder
    Skoder almost 14 years
    Thanks I tried the code, but it only moved slightly. I couldn't scroll smoothly all the way to the end. I guess it's a current limitation.
  • Skoder
    Skoder almost 14 years
    Thanks, I hope they release a refresh soon because I keep having to put off aspects of my application.
  • Frank
    Frank over 10 years
    Great! I was crazy! Thanks!