Sel*_*kie 9 c# xaml windows-runtime
我想知道什么是检测ScrollViewer是否到达底部,右边等的最佳方法.
我想我可以通过使用PointerWheelChanged用于鼠标和ManipulationDelta进行触摸来实现这一点.在这些事件处理程序中,我可以记录HorizontalOffset以找出滚动器何时到达结尾.但我认为可能有更好的方法来做到这一点.
我发现了这篇文章.但压缩视觉状态似乎不适用于winrt.不会调用CurrentStateChanging事件方法.
我还检查了另一篇文章.但它只适用于滚动条,而不是通用方法.
谁知道解决这个问题的最佳方法是什么?
Fil*_*kun 20
XAML:
<ScrollViewer
x:Name="sv"
ViewChanged="OnScrollViewerViewChanged">
<Rectangle
x:Name="rect"
Width="2000"
Height="2000"
Fill="Yellow"
Margin="10" />
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)
代码背后:
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);
}
}
Run Code Online (Sandbox Code Playgroud)