zoukankan      html  css  js  c++  java
  • 豆瓣电台WP7客户端 开发记录5

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

     废话不多说,上代码:

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

    表示监听水平手势 

    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值,就能知道是向左滑动还是向右了。

     

    QQ群:1022985150 VX:kklldog 一起探讨学习.NET技术
    作者:Agile.Zhou(kklldog)
    出处:http://www.cnblogs.com/kklldog/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    String
    【CLR】奇妙的String
    【Siverlight
    【WPF】ContentControl Style定义与使用出现问题后 -- 引发的思考
    WPF 简介
    《Java从入门到失业》第一章:计算机基础知识(1.1):二进制和十六进制
    《Java从入门到失业》第五章:继承与多态(5.8-5.10):多态与Object类
    《Java从入门到失业》第五章:继承与多态(5.1-5.7):继承
    《Java从入门到失业》第四章:类和对象(4.6):类路径
    《Java从入门到失业》第四章:类和对象(4.5):包
  • 原文地址:https://www.cnblogs.com/kklldog/p/2164510.html
Copyright © 2011-2022 走看看