views:

77

answers:

3

Hey everyone, 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!

A: 

If you want the contents to scroll, make sure a scrollbar is visible.

<TextBox Text="{Binding SomethingReallyLong}" 
 TextWrapping="Wrap" 
 VerticalScrollBarVisibility="Visible"/>        
Jeremiah
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
+2  A: 

Hi Skoder,

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.

Mick N
Thanks, I hope they release a refresh soon because I keep having to put off aspects of my application.
Skoder
+1  A: 

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>
Malcolm
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