2014-05-23 1 views
0

Dans mon application j'ai une page d'accueil et 2 autres pages, donc je veux naviguer d'une page à l'autre et viceversa, Quand je suis horizontalement glisser de droite à gauche et quand je suis horizontalement glisser de gauche à droite devrait être navigué à la page d'accueil. Supposons, Nous sommes sur la page d'accueil sur le balayage de droite à gauche (Page d'accueil ---> Page1, balayez à nouveau ---> Page2, balayez à nouveau ---> Page1 ... Comme ça .... .) et sur toute la page si je balaye de gauche à droite, il devrait être navigué à la page d'accueil. Comment faire cela dans l'application Windows Phone 8?Comment faire les navigations basées sur Gestures dans les applications Windows Phone?

Mon code:

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; 
        } 
       } 
      } 

S'il vous plaît aidez-moi, aide véritable est appréciée.

+1

Ceci est probablement pas la meilleure solution mais un contrôle de pivot avec blanc les en-têtes peuvent vous donner cet effet. –

Répondre

0

Vous avez plusieurs options ici.

Si vous parvenez à faire des choses en une seule page, alors les contrôles Pivot ou Panorama seront suffisants.

En outre, si vous avez besoin que chaque page doit être différente et que vous voulez utiliser NavigationService.Navigate() pour passer d'une page à l'autre puis, vous avez appelé événement Flick .vous pouvez gérer à poignée gauche/droite Swipes à travers ce par HorizontalVelocity et VerticalVelocity de ces événements.

Pour utiliser Flick Gesture, vous devez ajouter ce code dans votre fichier xaml w.r.t. à votre élément d'interface utilisateur:

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

et .cs son gestionnaire:

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 
     } 

Détails du support Gesture vous pouvez obtenir here

+0

Cela fonctionne très bien lorsque je glisse rapidement, mais si je glisse lentement sur la page, elle ne répond pas correctement. – user3162111

+0

Si vous ne vous arrêtez pas entre les deux, il devrait reconnaître les événements Flick. De plus, vous pouvez également essayer les événements de glisser. – vITs

Questions connexes