如何在Windows手机应用程序中基于手势进行导航?

时间:2014-05-23 12:56:17

标签: windows windows-phone-8 gesture-recognition

在我的应用中,我有一个主页和另外两个页面,所以我想从一个页面导航到另一个页面,反之亦然,当我从右向左水平滑动时,当我从左向右水平滑动时它应该导航到主页。

假设,我们在主页上从右向左滑动(主页---> Page1,再次刷卡---> Page2,再次刷卡---> Page1 ......就像那样.. ...)如果我从左向右滑动,则应在所有页面上导航到主页。如何在Windows Phone 8应用程序中执行此操作?

我的代码:

if (e.HorizontalVelocity < 0) //when it is true it should navigate to next index value
            {
                try
                {

                    Pivot_Main.SelectedIndex++;// here every time it's showing the same index value it is not incrementing 
                    switch (Pivot_Main.SelectedIndex)
                    {
                    case 0:
                        Pivot_Main.SelectedIndex = 0;
                        txtBlock_Pivot_Heading.Text = "Temperature";
                        var brush = new SolidColorBrush(Color.FromArgb(0xFF, 0x8C, 0xC6, 0x3F));
                        b_celcius = true;
                        temperature_Page_Clear();
                        txtBlock_OptText.Text = "ºC";
                        btn_OptText.Content = "ºC";
                        Grid_PivotHeading.Background = brush;
                        Canvas_Home.Background = brush;
                        Canvas_DisplayName.Width = 55;
                        //   btn_OptText.SetValue(Canvas.LeftProperty, 380.0);
                        break;                  
                    case 1:
                        Pivot_Main.SelectedIndex = 1;
                        txtBlock_Pivot_Heading.Text = "Length";
                        length_Page_Clear();
                        b_meter = true;
                    }
                }
            }

请帮助我,真诚的帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

这里有多个选项。

如果您可以设法在一个页面中执行操作,那么PivotPanorama控件就足够了。

此外,如果您需要每个页面都不同,并且您希望使用NavigationService.Navigate()从一个页面转到另一个页面,那么您有一个名为Flick的事件。您可以设法处理左/通过此事件HorizontalVelocityVerticalVelocity直接浏览此内容。

要使用Flick Gesture,您需要在xaml w.r.t中添加此代码。到您的UI元素:

    <toolkit:GestureService.GestureListener>
                <toolkit:GestureListener Flick="OnFlick"/>
    </toolkit:GestureService.GestureListener>

并在.cs中处理程序:

    private void OnFlick(object sender, FlickGestureEventArgs e)
    {
        // User flicked towards left
        if (e.HorizontalVelocity < 0)
        {
         //your respective navigation to other page
        }
        // User flicked towards right
        if (e.HorizontalVelocity > 0)
        {
        //your respective navigation to other page
        }

您可以获得的手势支持详情here