如何让ScrollViewer自动滚动

发布于 2024-08-15 23:30:24 字数 390 浏览 4 评论 0原文

我尝试将 TextBlock 放入 ScrollViewer 中,并且滚动条正确显示,但当 Text 时,我似乎无法使其自动向下滚动TextBlock 的 code> 属性已更新。以下是 XAML 的相关部分:

<ScrollViewer>
  <TextBlock FontFamily="Consolas"
             Text="{Binding Current.Current.Discussion}"
             TextWrapping="Wrap" />
</ScrollViewer>

我们将不胜感激,谢谢!

I tried to place a TextBlock inside a ScrollViewer, and the scroll bar shows up correctly, but I cannot seem to make it automatically scroll down when the Text property of the TextBlock is updated. Here's the relevant part of the XAML:

<ScrollViewer>
  <TextBlock FontFamily="Consolas"
             Text="{Binding Current.Current.Discussion}"
             TextWrapping="Wrap" />
</ScrollViewer>

Help would be greatly appreciated, thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

唐婉 2024-08-22 23:30:24

默认情况下,您得到的行为是滚动条将根据文本块中的文本量进行调整,但查看器将显示文本的顶部。要正确刷新,请执行以下操作:

scrollViewer.UpdateLayout();
scrollViewer.ScrollToVerticalOffset(txtBlock.ActualHeight);

By default, the behavior you get is that the scroll bars will adjust to the amount of text in the textblock, but the viewer will be showing the top of the text. To refresh that properly do this:

scrollViewer.UpdateLayout();
scrollViewer.ScrollToVerticalOffset(txtBlock.ActualHeight);
清欢 2024-08-22 23:30:24

监听文本更改事件

    textBlock.TextChanged += (o, args) => ScrollTextBoxToBotton();

滚动到底部的实际功能:

    private void ScrollTextBoxToBotton()
    {
        scrollViewer.UpdateLayout();
        scrollViewer.ScrollToVerticalOffset(double.MaxValue);
    }

Listen to the text changed event

    textBlock.TextChanged += (o, args) => ScrollTextBoxToBotton();

Actual function to scroll to bottom:

    private void ScrollTextBoxToBotton()
    {
        scrollViewer.UpdateLayout();
        scrollViewer.ScrollToVerticalOffset(double.MaxValue);
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文