9

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

<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

4 回答 4

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> 
于 2011-06-18T17:56:35.447 回答
2

您可能想参考讨论和 MSFT确认文本控件滚动仍在进行中的工作,就像当前 CTP 一样。Beta不应该太远,希望到那时更多。

于 2010-07-01T06:14:24.490 回答
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>
于 2010-07-01T07:30:27.727 回答
0

如果您希望内容滚动,请确保滚动条可见。

<TextBox Text="{Binding SomethingReallyLong}" 
 TextWrapping="Wrap" 
 VerticalScrollBarVisibility="Visible"/>        
于 2010-06-30T23:19:44.720 回答