2008-12-01 111 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將正確換行並且不會顯示水平滾動條。