我的滚动视图如下。现在我的情况是,最初,滚动查看器将显示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>
编辑:对于我的情况,滚动是从下到上。 How to find that ScrollViewer is scrolled to the end in WPF?对于向下滚动时检测的最后一项很有用。 在我的情况下,它是一个类似的聊天应用程序。当滚动条向上滚动并到达最后一条消息时,我需要获取更多数据。