gpt4 book ai didi

c# - 如何检测滚动查看器是否在 winrt 中到达底部

转载 作者:太空狗 更新时间:2023-10-29 17:32:48 26 4
gpt4 key购买 nike

我想知道检测 ScrollViewer 是否到达底部、右侧等的最佳方法是什么。

我想我可以通过对鼠标使用 PointerWheelChanged 和对触摸使用 ManipulationDelta 来实现这一点。在这些事件处理程序中,我可以记录 Horizo​​ntalOffset 以了解滚动条何时到达终点。但我认为可能有更好的方法来做到这一点。

我找到了这个 article .但是压缩视觉状态似乎在 winrt 中不起作用。未调用 CurrentStateChanging 事件方法。

我还检查了另一个 article .但它只适用于滚动条,不是通用的方法。

有谁知道解决这个问题的最佳方法是什么?

最佳答案

XAML:

<ScrollViewer
x:Name="sv"
ViewChanged="OnScrollViewerViewChanged">
<Rectangle
x:Name="rect"
Width="2000"
Height="2000"
Fill="Yellow"
Margin="10" />
</ScrollViewer>

代码隐藏:

private void OnScrollViewerViewChanged(object sender, ScrollViewerViewChangedEventArgs e)
{
var verticalOffset = sv.VerticalOffset;
var maxVerticalOffset = sv.ScrollableHeight; //sv.ExtentHeight - sv.ViewportHeight;

if (maxVerticalOffset < 0 ||
verticalOffset == maxVerticalOffset)
{
// Scrolled to bottom
rect.Fill = new SolidColorBrush(Colors.Red);
}
else
{
// Not scrolled to bottom
rect.Fill = new SolidColorBrush(Colors.Yellow);
}
}

关于c# - 如何检测滚动查看器是否在 winrt 中到达底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12683070/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com