今天的关键词是手势。在专辑封面上往右滑一下就切换下一首。

废话不多说,上代码:

首先在主界面的构造函数里放上:

表示监听水平手势

TouchPanel.EnabledGestures = GestureType.HorizontalDrag;

你可以这样多监听几个手势

TouchPanel.EnabledGestures = GestureType.HorizontalDrag|GestureType.VerticalDrag|GestureType.Hold;

XAML:  <StackPanel x:Name="AlubmImage_Double" Margin="0,1,0,0" ManipulationCompleted="AlubmImage_Double_ManipulationCompleted" ManipulationStarted="AlubmImage_Double_ManipulationStarted" >

手势起始事件,取得起始位置。

private void AlubmImage_Double_ManipulationStarted(object sender, ManipulationStartedEventArgs e)

{
pFirst = e.ManipulationOrigin;
}

手势完成事件:

private void AlubmImage_Double_ManipulationCompleted(object sender, ManipulationCompletedEventArgs e)

{ pSecond = e.ManipulationOrigin;

bool IsDo = false;

while (TouchPanel.IsGestureAvailable)

{

GestureSample gesture = TouchPanel.ReadGesture();

//如果是水平手势 起始点的X>结束点的X

if (gesture.GestureType == GestureType.HorizontalDrag && pFirst.X < pSecond.X&&!IsDo)

{ IsDo = true; this.btn_n_Click(null, null);

}

}

}

说明:

当你作出一个手势的时候,比如水平滑动一下,这其实会触发一连串的手势,注意是一连串,不是一个。因为你水平滑动一下,不可能是绝对的水平的,还可能带着其他的动作,比如VerticalDrag垂直滑动。而且也不是一个水平滑动跟一个其他活动。都可能有好几个。所以我上面的代码严格来说是不严谨的,因为可能垂直滑动中有那么一个水平滑动就够触发下一首的事件了,不过我在开始的时候就只是指定监听HorizontalDrag。这个时候能进循环其实就已经说明是水平滑动了。如果你多监听几个手势,你会发现垂直滑动事件也会触发了。所以你一次

ManipulationCompleted一定要循环 TouchPanel.ReadGesture()了直到读完所有手势。不然下次触发 ManipulationCompleted的时候你读到的手势还是上一次的。当读完后TouchPanel.IsGestureAvailable变成false,这个是不是跟Ado.net里的datareader差不多呢。所以一般都用while循环。

pFirst.X < pSecond.X 比较起始位置跟结束位置的X值,就能知道是向左滑动还是向右了。

转载于:https://www.cnblogs.com/kklldog/archive/2011/09/02/2164510.html

豆瓣电台WP7客户端 开发记录5相关推荐

  1. 豆瓣电台WP7客户端 开发记录1

    最近抽空摸了下WP7.随便做了个豆瓣电台的客户端. 看图: 经过:简单的分析了豆瓣FM的web页面抓了下HTTP请求,2个晚上的奋战,基本功能已经实现.频道切换特效使用pivot控件.专辑封面倒影效果 ...

  2. 豆瓣电台WP7客户端 开发记录3

    今天完成了收藏功能.本来想用豆瓣账号登陆获取收藏列表的,不过后来一想我只要把歌曲信息记录在本地不是简单多了么.况且mango已经支持本地数据库,更能实践一下. 下面说说mango本地数据库开发. 这个 ...

  3. 豆瓣电台WP7客户端 开发记录2

    1.因为觉得原来的button巨丑,所以换成了ApplicationBar来实现控制.见图: 是不是漂亮多了 哈哈. ApplicationBar中的ApplicationBarIconButton  ...

  4. 豆瓣电台WP7客户端 开发记录4

    今天自己做了个频道导航.原来的pivot控件不好,不能平滑的滚动,只能顺序的切换,这样的话如果我现在是第一个频道,想到频道三去就必定要先切换到品频道二,这样显然体验不好.于是用scrollviewer ...

  5. 豆瓣电台WP7客户端 开发记录 8

    这次实现了下后台播放的功能!学微软的例子. http://msdn.microsoft.com/en-us/library/hh202978(v=VS.92).aspx 注意:新建一个 Windows ...

  6. 豆瓣电台WP7客户端 开发记录7

    由于歌曲名称可能超过屏幕宽度而显示不下,所以当歌曲名称长度大于屏幕宽度的时候滚动显示. 这里主要用storyboard来完成,主要是silverlight的知识了. 1                 ...

  7. 豆瓣电台WP7客户端 开发记录6

    今天把导航改成HubTile模式了,见图: XAML: <Grid x:Name="ContentPanel" Grid.Row="1"          ...

  8. 自学CTP客户端开发记录001

    CTP客户端开发指南 1. CTP 1.1 介绍 1.2 FTD 通讯协议 1.2.1 通讯模式 1.2.2 数据流 1.3 两种数据交换模式 1.3.1 请求应答模式 1.3.2 发布订阅模式 1. ...

  9. 博客园win8客户端开发记录5-app设置 登录 回复评论

    这段时间完成了博客园cnblogs登录,注销和设置的相关功能 ,进入软件, 打开win8的charm setting 选择设置就是当前软件的设置选项了, 感觉这有点山寨mac os x系统(所有软件包 ...

最新文章

  1. “清华数为”工业时序数据库IoTDB与DWF应用开发寒假师资培训圆满结束
  2. mySQL优化 my.ini 配置说明
  3. 简单几何(线段相交+最短路) POJ 1556 The Doors
  4. 马尔可夫“折棍子”过程 Markovian Stick-breaking Process 简介
  5. java 封箱_java封箱和拆箱分析
  6. 04 linux用户群组和权限
  7. Catch him(HDU-2351)
  8. 菜鸟的学习之路(13) —TreeSet类的排序
  9. java基础语法day03
  10. 博弈论分析题_最新博弈论复习题及答案分析
  11. 太阳时的计算的Python程序
  12. 斐讯k2p梅林忘记密码恢复出厂之后的解决办法
  13. JS红宝书学习记录(一)
  14. Go 开发关键技术指南 | 带着服务器编程金刚经走进 2020 年
  15. php 简易教学管理系统
  16. Leetcode每日一题 面试题56 - I.数组中数字出现的次数
  17. 欢迎来到地狱(隐写术)
  18. Druid简介(可视化)
  19. React中input的失焦问题
  20. redis php 书,PHP-redis中文文档

热门文章

  1. Alax技术实现的基本原理——XMLHttpRequest对象的使用
  2. 网页设计:运用html与css实现水平居中、文字图片重叠混排
  3. [转载] 怎样应对一般的面试---Star 法则 - towerman
  4. View的foreground属性
  5. 怎么卸载电脑中的oracle,oracle怎么完全卸载
  6. 截至2012年5月23日19点58分支持CUDA的NVIDIA的GPU列表(Geforce)
  7. Flightmare: A Flexible Quadrotor Simulator 无人机仿真器
  8. 冲激响应不变法或双线性变换法中的参数T为什么是一个无关紧要的参数
  9. 路径中 斜杠/和反斜杠\ 的区别
  10. java 使用sourceforge.pinyin4j查询汉字拼音