首页 > 解决方案 > 如何识别在滚动视图中滚动时到达列表末尾的时间

问题描述

我的 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 中滚动到末尾?当向下滚动时检测最后一项很有用。在我的场景中,它类似于聊天应用程序。当滚动条向上滚动并到达最后一条消息时,我需要检索更多数据。

标签: wpfscrollviewer

解决方案


推荐阅读