Silverlight 2.0 - 垂直滚动,水平包裹

时间:2008-12-01 12:42:14

标签: silverlight xaml silverlight-2.0 scroll wrapping

在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应该占据控件的主要区域, 如果高度不合适,请使用垂直滚动条。消息在水平放置太长时应该换行。

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

1 个答案:

答案 0 :(得分:4)

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