wpf - 如何识别在滚动视图中滚动时到达列表末尾的时间
问题描述
我的 Scrollview 如下。现在我的情况是,最初滚动查看器将显示 10 个项目。当滚动条到达第 10 项时,我需要实现一些功能。现在的问题是我无法识别滚动条何时到达最后一项。我尝试将ScrollChanged
事件与垂直偏移一起使用,但这似乎不起作用。有什么办法可以做到这一点。
<ScrollViewer x:Name="ChatListScrollViewer" Background="#ffffff" Grid.Column="0" ScrollChanged="ChatListScrolled" Focusable="False">
<VirtualizingStackPanel VerticalAlignment="Stretch">
<ItemsControl VirtualizingStackPanel.VirtualizationMode="Recycling" Background="White" x:Name="MessageList" ItemsSource="{Binding Source={StaticResource ChatList}}" Focusable="False" BorderBrush="Transparent" BorderThickness="0" HorizontalAlignment="Stretch" ScrollViewer.HorizontalScrollBarVisibility="Hidden" x:FieldModifier="public">
<ItemsControl.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<!-- Code -->
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</ItemsControl.GroupStyle>
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Margin="0">
<!-- Code -->
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</VirtualizingStackPanel>
</ScrollViewer>
编辑:对于我的场景,滚动是从下到上的。这是如何发现 ScrollViewer 在 WPF 中滚动到末尾?当向下滚动时检测最后一项很有用。在我的场景中,它类似于聊天应用程序。当滚动条向上滚动并到达最后一条消息时,我需要检索更多数据。
解决方案
推荐阅读
- python - 查找`__init__()`的参数或在python中构造对象所需的参数
- asp.net - 在同一服务器和域 IIS 下的应用程序中使用相同的会话
- php - 需要将 PHP 5.6 安装到支持 sybase 和 oci8 的 RHEL 8.3 中
- java - Selenium Java 不使用 --headless 选项保留最终修改
- c++ - 在 C++ 中添加工具提示
- web - 我应该如何在通信应用程序上构建这个应用程序?
- latex - Subfloat 中的脚注(子图)
- java - 如何使用 for 和 if 语句将两个数组中的匹配数字添加到空的第三个数组中?
- google-analytics - 修复 GA4 属性中的自我推荐问题
- linux - Linux命令时间中的wall time和cpu time