防止RichTextBox's的高度增长
本文关键字:高度 RichTextBox 防止 | 更新日期: 2023-09-27 18:18:06
我的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
来解决这个问题。
一切正常。然而,还有一个小问题。如果我调整父窗口的大小,让它变大,然后把它缩小到原来的大小,RichTextBox
的高度不会回到原来的值,它会再次显示滚动条。
我该如何解决这个问题?
Change
<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" />
而不是将它绑定到ActualWidth给它水平和垂直对齐拉伸