防止RichTextBox的高度增长

时间:2013-06-13 10:32:42

标签: c# .net wpf xaml

我的WPF应用程序中有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>

此代码位于UserControl,此UserControl是另一个Window的内容。在Window中,我有一个ScrollViewer,只要内容大于容器,就会显示滚动条。这是代码:

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

我最初的问题是每当日志消息填满RichTextBox时,它就会增长并显示容器上的滚动条。我通过将RichTextBox的高度绑定到其父网格的ActualHeight来解决它。

一切都按预期工作。但是,还有一个小问题。如果我通过将paretn窗口放大并将其缩小到之前的大小来调整它的大小,RichTextBox的高度将不会恢复到之前的值,它将再次显示滚动条。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分: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" />

而不是将其绑定到实际宽度,为其提供水平和垂直对齐拉伸