在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”,我可以看到它们向右滚动。我如何强迫它包裹?
答案 0 :(得分:4)
尝试将ScrollViewer的HorizontalScrollBarVisibility设置为Disabled(或者不指定默认值为Disabled),然后TextDisplay将正确包装并且不会显示水平滚动条。