Прокрутка текстового блока - PullRequest
8 голосов
/ 01 июля 2010

У меня есть 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 ]

23 голосов
/ 18 июня 2011

Не вставьте высоту в текстовое поле. Это отлично сработало для меня:

    <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> 
2 голосов
/ 01 июля 2010

Возможно, вы захотите сослаться на обсуждение и MSFT подтверждение о том, что прокрутка с управлением текстом все еще находится в процессе выполнения на текущем CTP.Бета не должна быть слишком далеко, надеюсь, тогда об этом будет больше.

1 голос
/ 01 июля 2010

Приведенный ниже код работает: поскольку ваш дочерний элемент управления (т.е. текстовый блок) имеет высоту и ширину, которые не равны ширине и высоте вашего средства просмотра прокрутки, и, следовательно, полосы прокрутки не отображаются. Я только что дал ту же высоту и ширину, что и просмотрщик прокрутки для элементов управления, определенных внутри него, он работает.

<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>
0 голосов
/ 01 июля 2010

Если вы хотите прокрутить содержимое, убедитесь, что полоса прокрутки видна.

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