WP8在没有WP7工具包的情况下实现手势

时间:2013-01-19 20:07:11

标签: windows-phone gestures

我最近为Windows Phone 8重建了一个应用程序,但是使用新的Silverlight Toolkit,GestureListener不再存在,警告:“Silverlight项目不支持GestureListener”。我真的想在我的应用程序中实现一个手势导航系统,从而可以向左或向右滑动页面以导航到其他两个页面之一,但只有在某个“拖动阈值”之后 - 这在WP7 {{3}中很好地显示(删除我想要应用到我的MainPage的项目的行为) - 但没有旧的控件我无法看到一个明确的方法来做这个,经过无情地尝试。现在显然我们只能使用三个here,这使得之前变得容易的过程复杂化了。我试图让整个页面(即第一个ContentPanel)沿水平方向移动,但现在甚至无法实现。请问有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

using Microsoft.Phone.Controls;

namespace PhoneApp2
{
    public partial class MainPage : PhoneApplicationPage
    {
        double _x = 0;
        double _y = 0;

        double _x2 = 0;
        double _y2 = 0;

        public MainPage()
        {
            InitializeComponent();            
        }

        private void PhoneApplicationPage_ManipulationStarted_1(object sender, System.Windows.Input.ManipulationStartedEventArgs e)
        {
            _x = e.ManipulationOrigin.X;
            _y = e.ManipulationOrigin.Y;
        }

        private void PhoneApplicationPage_ManipulationCompleted_1(object sender, System.Windows.Input.ManipulationCompletedEventArgs e)
        {
            _x2 = e.ManipulationOrigin.X;
            _y2 = e.ManipulationOrigin.Y;

            string _xx = string.Format("  x:{0}  y:{1}   x2:{2}   y2:{3}", _x, _y, _x2, _y2);

            if (_y > _y2 && _y - _y2 > 100)
            {
                lbl1.Text = "up" + _xx;
            }
            else if (_x > _x2 && _x - _x2 > 100)
            {
                lbl1.Text = "left" + _xx;
            }
            else if (_y < _y2 && _y2 - _y > 100)
            {
                lbl1.Text = "down" + _xx;
            }
            else if (_x < _x2 && _x2 - _x > 100)
            {
                lbl1.Text = "right" + _xx;
            }
        }
    }
}