我的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
的高度将不会恢复到之前的值,它将再次显示滚动条。
我该如何解决这个问题?
答案 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" />
而不是将其绑定到实际宽度,为其提供水平和垂直对齐拉伸