返回顶部的按钮,like this

当用户下滑了一定的距离之后,通常是快滑倒底部的时候,出现返回顶部按钮,当用户向上快滑,滑到顶部的时候,返回顶部按钮自动消失。

在UWP中,用来滚动内容的控件是ScrollViewer控件,当前页面呈现不下时,就会让内容可以滚动查看。

一:ScrollViewer 控件

1.1 ViewChanged事件

 当ScrollViewer里的滚动条的位置发生改变时,会触发ViewChanged事件。

1.2 获取滚动条位置

 // 获取内容已垂直滚动的距离。
// 返回结果:
// 内容已垂直滚动的距离。
public double VerticalOffset { get; }

1.3 获取ScrollViewer的高度

ScrollViewer 里有很多个高度的属性

1.ActualHeight      实际高度,当前ScrollViewer呈现的高度,包括ScrollViewer的padding值。

2.ViewportHeight  获取包含内容视区垂直大小的值,(减去padding,margin等)

3. ExtentHeight  拓展高度,scrollview总的长度,包括还没有滚动到的长度

4. ScrollableHeight 能够滚动的高度,ExtentHeight-ActualHeight  就是能够滚动的高度

5.Height 高度

6.MaxHeight 最大高度

7. MinHeight 最小高度

要注意 VerticalOffset 滚动条的值滑倒底部=ScrollableHeight  而不是ExtentHeight

具体的放回顶部按钮出现的规则自己定。

 ScrollViewer scrollViewer = sender as ScrollViewer;
if (scrollViewer.VerticalOffset>scrollViewer.ViewportHeight) //
{
BackTopButton.Visibility = Visibility.Visible;
}
else if(scrollViewer.VerticalOffset< scrollViewer.ViewportHeight) //
{
BackTopButton.Visibility = Visibility.Collapsed;
}

1.4  将滚动条拉回顶部

将滚动条返回顶部不能用VerticalOffset属性了,VerticalOffset属性是只读属性。我们用ChangeView方法

 public bool ChangeView(double? horizontalOffset, double? verticalOffset, float? zoomFactor);

第一个参数是水平滚动条位置,第二个参数是竖直滚动条位置,第三个是缩放比例。

//返回顶部按钮
private void BackTopButton_Click(object sender, RoutedEventArgs e)
{
ItemDetailsPannelScrollViewer.ChangeView(null,0,null);
}

如果我们只是想把竖直滚动条位置的位置变为0,那么只要将第二个擦参数设置为0,其它不用的参数设置为null。

---------some words-----------

1.scroll 滚动

2.Viewer 阅读器

3. ScrollViewer 滚动阅读器

4.offset 偏移

5.vertical 竖直的

6.VerticalOffset 竖直偏移量

7.Actual 实际的

8.ViewPort 视口

9.Extent 拓展

10.zoom 变焦,变大

11.Factor 因素,因子

----------- the end---------------

UWP 返回顶部按钮的更多相关文章

  1. 【Android】ListView监听上下滑动(判断是否显示返回顶部按钮

    设置滚动监听判断ListView的滚动方向同时获取屏幕高度.ListView实际高度,判断是否需要展示返回顶部按钮 package com.zihao.activity;   import java. ...

  2. vue进入页面时不在顶部,检测滚动返回顶部按钮

    这里是本小白使用时遇到的问题及个人使用的方法可能并不完美. 1.监测浏览器滚动条滚动事件及滚动距离 dmounted() { window.addEventListener("scroll& ...

  3. 使用jquery实现返回顶部按钮

    实现返回顶部效果,首先需要监听页面的scroll事件,其次才是获取到页面当前的滚动高度 $(window).scrollTop(); 具体代码如下: jquery获取页面元素的一些边界值(宽,高,滚动 ...

  4. 在页面中有overflow-y:auto属性的div,当出现滚动条,点击返回顶部按钮,内容回这个div最顶部

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. jquery back to top 页面底部的返回顶部按钮

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. js实现返回顶部按钮

    html: <div class="box"></div> <div class="box1"></div> & ...

  7. PC返回顶部浮动按钮

    要添加的css: <style> .up{width:54px;height:54px;background:url(/Images/topback.gif) no-repeat 0 0; ...

  8. jquery 返回顶部 兼容web移动

    返回顶部图片 http://hovertree.com/texiao/mobile/6/tophovertree.gif 具体实现代码 <span id="tophovertree&q ...

  9. js实现返回顶部功能的解决方案

    很多网站上都有返回顶部的效果,主要有如下几种解决方案. 1.纯js,无动画版本 window.scrollTo(x-coord, y-coord); window.scrollTo(0,0); 2.纯 ...

随机推荐

  1. wxPython中菜单、按钮学习

    ---恢复内容开始--- wx.Window 是一个基类,许多构件从它继承.包括 wx.Frame 构件.技术上这意味着,我们可以在所有的 子类中使用 wx.Window 的方法.我们这里介绍它的几种 ...

  2. Python中wx.FlexGridSizer

    FlexGridSizer是GridSizer的一个更灵活的版本.它与标准的GridSizer几乎相同,除了下面3点例外: 1.每行和每列可以有各自的尺寸.2.默认情况下,当尺寸调整时,它行和列整体改 ...

  3. SerialPort如何读取串口数据并显示在TextBox上,多线程委托

    namespace SerialPort { public partial class Form3 : Form { delegate void UpdateTextEventHandler(stri ...

  4. 文件上传之--内存溢出(System.OutOfMemoryException)

    两周前就想把这点经验记录下来了,由于拖延症上身,直到刚才突然想起这件未完成的任务,今天是1024,在这个特别的日子里,祝所有程序猿兄弟姐妹们节日快乐! 上传功能一直很正常,直到上传了个500多兆的文件 ...

  5. Java可变参数以及一个简单应用

    可变参数: Java1.5增加了新特性:可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理. 注意:可变参数必须位于最后一项. 原因:当可变参数个数多余一个时,必将有一个不 ...

  6. spring中WebApplicationContextUtils类说明

    WebApplicationContextUtils是一个抽象类,其提供了一个很便利的方法来获取spring应用的上下文即WebApplicationContext. 其中的静态方法getWebApp ...

  7. python数据结构之树和二叉树(先序遍历、中序遍历和后序遍历)

    python数据结构之树和二叉树(先序遍历.中序遍历和后序遍历) 树 树是\(n\)(\(n\ge 0\))个结点的有限集.在任意一棵非空树中,有且只有一个根结点. 二叉树是有限个元素的集合,该集合或 ...

  8. Go语言备忘录:net/http包的使用模式和源码解析

    本文是晚辈对net/http包的一点浅显的理解,文中如有错误的地方请前辈们指出,以免误导! 转摘本文也请注明出处:Go语言备忘录:net/http包的使用模式和源码解析,多谢!  目录: 一.http ...

  9. struts2使用模型传值

    用户bean package userBeans; public class User { private String username; public String getUsername() { ...

  10. Amaze UI 是一个移动优先的跨屏前端框架。 http://amazeui.org/

    http://amazeui.org/ Amaze UI 是一个移动优先的跨屏前端框架.... Amaze UI 以移动优先(Mobile first)为理念,从小屏逐步扩展到大屏,最终实现所有屏幕适 ...