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

2023-11-27

我想知道检测 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);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

winrt中如何检测滚动查看器是否到达底部 的相关文章

随机推荐

  • .net WebApi OData + Breeze => [Q] 未处理的拒绝原因(应为空)

    我有一个带有 OData EntitySetController 的 net 4 5 Web Api 在客户端我加载了以下js文件 jquery min js q min js datajs 1 1 1 min js breeze debu
  • 如何在并行foreach中使用await? [复制]

    这个问题在这里已经有答案了 所以我花了大半夜的时间试图解决这个问题 我有幸被介绍到Parallel ForEach昨天 除了一个细节之外 它的工作原理就像我想要的那样 我有以下内容 Parallel ForEach data d gt tr
  • 如何将 LI 元素定位到 UL 列表的底部

    我有这样的菜单项 Row1 Row2 Row 并且我希望它们不要那么宽 这就是为什么包括中断 具有最大宽度 我有这个 HTML div ul li Row1 li li Row1 Row2 Row3 li li Row1 li li Row
  • Git克隆不带master分支

    我有一个远程存储库http github com fernandezpablo85 Test 这个仓库有一个master分支 但它位于另外两个分支后面 因此当我克隆它时 我收到此警告 警告 远程 HEAD 引用不存在的引用 无法签出 而且我
  • 空闲字符*:下一个大小无效(快速)[重复]

    这个问题在这里已经有答案了 我在串联过程后释放 char 但我收到此错误 free 下一个大小无效 快速 0x0000000001b86170 下面是我的代码 void concat stringList list char res cha
  • 如何在alamofire中设置Cookie?

    如何设置 Cookie阿拉莫菲尔这样每次我杀死应用程序并重新启动它时 都会发送相同的cookie 斯威夫特 5 1 和阿拉莫菲尔 5 0 准备你的饼干 let cookieProps HTTPCookiePropertyKey domain
  • 为什么一元减法会进行积分提升?

    const auto min std numeric limits
  • setInterval 的这种行为是否意味着 Javascript 中的多线程行为?

    在使用 javascript 时我注意到了这个事情 您可以使用 var i 0 var startingTime new Date getTime setInterval foo 1 function foo i 1 if foodiv t
  • 列表字典的笛卡尔积

    我正在尝试编写一些代码来测试一堆输入参数的笛卡尔积 我看过itertools 但其product功能不完全是我想要的 有没有一种简单明显的方法来获取具有任意数量键的字典and每个值中的任意数量的元素 然后生成具有下一个排列的字典 Input
  • 如何使用刀片模板中的类?

    我已经创建了类Helper有路径App Http Helpers
  • 与jQuery中的serializeArray相反(恢复形式)

    数据来自serializeArray 如何用它更新表单 var values form serializeArray form deserializeArray value What is the deserializeArray anal
  • SurfaceView 和 View 之间的区别?

    什么时候有必要 或者更好地使用SurfaceView代替View 视图全部绘制在同一个 GUI 线程上 该线程也用于所有用户交互 因此 如果您需要快速更新GUI 或者渲染花费太多时间并影响用户体验 请使用SurfaceView
  • 不断增加应用程序内存(IOAccelResource)

    我试图集中注意力解决一个问题 在这个问题 背景是 回合制游戏 使用 cocos2d 2 0 版本开发 obj c 无 ARC 目前正在准备 AppStore 更新以解决一些 iOS 7 问题 我的 不是 iOS7 我自己的仪器以及 Inst
  • 定义一个具有许多(或无限)参数的方法

    The initWithObjects 的方法NSArray接受不确定的参数列表 NSMutableArray array NSMutableArray alloc initWithObjects id nil 我怎样才能像这样定义自己的方
  • 在android xml中将按钮排列成菱形

    我想创建一个带有四个按钮的屏幕 每个按钮都是菱形的 就像一个向侧面旋转 45 度的正方形 并且所有四个按钮都排列成一个更大的菱形 我在这里搜索过 并设法创建了这个 xml 文件 它暗示了我想要实现的目标
  • php 递归数组值

    假设我有一个这样的数组 Array id gt 45 name gt john children gt Array 45 gt Array id gt 45 name gt steph children gt Array 56 gt Arr
  • 为什么 git tag 一个 blob 或一棵树(或一个标签)?

    我明白how可以使用 git 标签来标记 blob 树 甚至另一个带注释的标签 我了解使这成为可能的架构和概念设计 然而 我很难想象这个应用程序的现实生活 或 真实工作流程 应用程序 在 Stack Overflow 上搜索时 我只找到了一
  • 使用 Android 的内置声学回声消除

    有谁知道如何使用 Android 设备的内置回声消除功能 它位于芯片中的某个位置 用于 GSM CDMA 免提电话呼叫 我们真的很想利用它来开发 VoIP 应用程序 而不是推出我们自己的应用程序 Ben 我终于能够在我的 Arm5 WM86
  • 使用意图编辑日历事件不起作用

    好的 我在这里非常精确地阅读了文档 http developer android com guide topics providers calendar provider html update event它写的是这样的 Here is a
  • winrt中如何检测滚动查看器是否到达底部

    我想知道检测 ScrollViewer 是否到达底部 右侧等的最佳方法是什么 我想我可以通过使用 PointerWheelChanged 鼠标和 ManipulationDelta 触摸来实现这一点 在这些事件处理程序中 我可以记录 Hor