У меня есть 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>
Спасибо!
Возможно, вы захотите обратиться к обсуждению и подтверждению MSFT, что прокрутка текстовых элементов управления все еще находится в стадии разработки на текущем CTP. Бета-версия уже не за горами, надеюсь, тогда будет больше информации об этом.
Приведенный ниже код работает: Поскольку ваш дочерний элемент управления (т.е. textblock) имеет высоту и ширину, которые не равны ширине и высоте вашего средства просмотра прокрутки, и, следовательно, полосы прокрутки не отображаются. Я только что дал ту же высоту и ширину, что и средство просмотра прокрутки для элементов управления, определенных внутри него, он работает.
<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>
Если вы хотите, чтобы содержимое прокручивалось, убедитесь, что полоса прокрутки видна.
<TextBox Text="{Binding SomethingReallyLong}"
TextWrapping="Wrap"
VerticalScrollBarVisibility="Visible"/>