Silverlight 2.0 - прокрутка по вертикали, перенос по горизонтали - PullRequest
1 голос
/ 01 декабря 2008

В Silverlight 2.0. У меня есть контент, который я хочу прокручивать по вертикали и переносить по горизонтали. В контроле у ​​меня есть док панель. Последний дочерний элемент DockPanel, который заполняет его, это ScrollViewer

<UserControl x:Class="MyProject.MyControl"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:WinControls="clr-namespace:Microsoft.Windows.Controls;
      assembly=Microsoft.Windows.Controls" 
    Width="400" Height="300">
    <WinControls:DockPanel LastChildFill="True">
    ...
<ScrollViewer x:Name="MessageScroll" HorizontalScrollBarVisibility="Hidden"
     VerticalScrollBarVisibility="Auto" BorderThickness="0" >
    <Controls:TextDisplay x:Name="TextDisplay"></Controls:TextDisplay>
</ScrollViewer>

Элемент управления TextDisplay XAML выглядит следующим образом:

<UserControl x:Class="MyProject.TextDisplay"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
        <TextBlock x:Name="TextDisplayText" TextWrapping="Wrap">
        </TextBlock>
</UserControl>

Что я хочу сделать: TextDisplay должен занимать основную область элемента управления, с вертикальной полосой прокрутки, если высота не подходит. Сообщения должны переноситься, когда они становятся слишком длинными по горизонтали.

Прокрутка работает, но теперь сообщения не переносятся по правому краю. они просто отрезаны. Он не ограничивает ширину, а просто скрывает HorizontalScrollBar. Если я установлю HorizontalScrollBarVisibility = "Auto", я вижу, как они прокручиваются вправо. Как заставить его обернуть?

1 Ответ

4 голосов
/ 01 декабря 2008

Попробуйте установить для HorizontalScrollBarVisibility объекта ScrollViewer значение «Отключено» (или не указывайте значение, так как значение «Отключено» является значением по умолчанию), тогда TextDisplay будет правильно переноситься, и горизонтальная полоса прокрутки не будет отображаться.

...