我遇到过类似的问题:我想要一个文本区域,它可以保存我的文本,能够包装它,它填充它的父控件并且是可滚动的。
首先,我尝试将TextBlock与ScrollViewer一起使用,我认为它有效,但出于某种原因,我想使用FlowDocument而不是FlowDocumentScrollViewer。后者没有用,我就是不能让战斗无人看管,所以我试图找到解决方案,这就是我到达这里的原因。我尝试应用原始问题的答案中提供的解决方法,但是这两种解决方案都不适合我(我使用的是 .NET 4.5,也许它适用于其他版本,但我不知道)。
我也尝试过单独使用单个FlowDocument,但该控件包含一些我不想要的 UI 元素。所以,我想出了另一个解决方案。
<ScrollViewer VerticalScrollBarVisibility="Auto">
<FlowDocumentScrollViewer HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden">
<FlowDocument>
这是正确的。有用!调用ScrollViewer.ScrollToBottom()就可以了!ScrollViewer启用滚动,而FlowDocumentScrollViewer从 FlowDocument中删除 UI 元素。希望能帮助到你!
显然我的构造有一个缺陷,因为这样FlowDocument不能通过鼠标的滚轮滚动。但是,将FlowDocumentScrollViewer控件的IsHitTestVisible属性设置为False可以解决此问题。