2008-12-01 104 views
1

在silverlight 2.0中。我有一些内容需要垂直滚动并水平换行。在控件中我有一个停靠面板。在DockPanel中的最后一个孩子,填补它,是一个ScrollViewer中Silverlight 2.0 - 垂直滚动,水平换行

<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形式应该占有控制的主要区域, 与垂直滚动条,如果高度不适合。当消息水平过长时,消息应该包装。

滚动工作,但现在消息不包装在右边缘。他们只是切断了。它不限制宽度,只是隐藏Horizo​​ntalScrollBar。如果我设置Horizo​​ntalScrollBarVisibility =“Auto”,我可以看到它们向右滚动。我如何强制它包装?

回答

4

尝试将ScrollViewer的Horizo​​ntalScrollBarVisibility设置为Disabled(或不指定值为Disabled为默认值),那么TextDisplay将正确换行并且不会显示水平滚动条。