2013-06-13 63 views
0

我在我的WPF應用程序中有一個RichTextBox控件。我用它來顯示日誌消息。下面的代碼:防止RichTextBox的高度不斷增長

<Grid x:Name="grid" 
     Margin="20,120,20,20"> 
    <RichTextBox x:Name="txtLog" 
       Height="{Binding ElementName=grid, Path=ActualHeight, Mode=OneWay}" 
       FontSize="15" 
       ScrollViewer.HorizontalScrollBarVisibility="Auto" 
       ScrollViewer.VerticalScrollBarVisibility="Auto" /> 
</Grid> 

此代碼是在UserControlUserControl是另一個Window內容。在Window,我有一個ScrollViewer顯示滾動條,只要內容大於容器。下面是該代碼:

<ScrollViewer x:Name="content" 
       VerticalScrollBarVisibility="Auto" 
       Margin="0,70,0,0"> 
    <Controls:TransitioningContentControl x:Name="transition" 
             Transition="LeftTransition" /> 
</ScrollViewer> 

我最初的問題是,每當日誌消息被填充RichTextBox,它會成長,並顯示在容器上的滾動條。我通過將RichTextBox的高度綁定到其父「Grid」的ActualHeight來解決此問題。

所有工作都按預期工作。但是,還有一個小問題。如果我調整paretn窗口的大小,然後將其縮小到之前的大小,則RichTextBox的高度將不會回到其先前的值,並且會再次顯示滾動條。

我該如何解決這個問題?

+0

不會設置'上MaxHeight''RichTextBox'是更好? – StaWho

+0

有點困惑,你需要滾動條還是不行,如果你這樣做,什麼時候? – Bolu

回答

1

變化

<RichTextBox x:Name="txtLog" 
      Height="{Binding ElementName=grid, Path=ActualHeight, Mode=OneWay}" 
      FontSize="15" 
      ScrollViewer.HorizontalScrollBarVisibility="Auto" 
      ScrollViewer.VerticalScrollBarVisibility="Auto" /> 

<RichTextBox x:Name="txtLog" 
      HorizontalAlignment="Stretch" 
      VerticalAlignment="Stretch" 
      FontSize="15" 
      ScrollViewer.HorizontalScrollBarVisibility="Auto" 
      ScrollViewer.VerticalScrollBarVisibility="Auto" /> 

insted的它結合ActualWidth的給它的水平和垂直對準拉伸