滚动TextBlock

时间:2010-06-30 23:14:46

标签: silverlight xaml windows-phone-7 scrollviewer textblock

我在同一位置有一个TextBlock和一个Textbox。根据用户所处的模式,我使一个可见,另一个折叠。这工作正常,但我怎样才能使Textblock可滚动?我想我应该使用ScrollViewer,但我不知道它为什么不起作用。我已经尝试过使用高度(自动和固定),但它不会滚动。我的xaml是这样的:

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

谢谢!

4 个答案:

答案 0 :(得分:23)

不要在文本框中放置高度。 这对我很有用:

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

答案 1 :(得分:2)

您可能希望引用discussion和MSFT confirmation文本控件滚动仍然是当前CTP正在进行的工作。 Beta不应该太遥远,希望更多的是当然。

答案 2 :(得分:1)

以下代码有效:由于您的子控件(即文本块)的高度和宽度不等于滚动查看器的宽度和高度,因此滚动条不会显示。我刚刚给出了它内部定义的控件的滚动查看器的高度和宽度。

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

答案 3 :(得分:0)

如果要滚动内容,请确保滚动条可见。

<TextBox Text="{Binding SomethingReallyLong}" 
 TextWrapping="Wrap" 
 VerticalScrollBarVisibility="Visible"/>