1

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

4

1 回答 1

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;
            }
        }
    }
}
于 2013-03-07T16:51:18.593 回答