2011-03-30 3 views
2

Existe-t-il une méthode comme protected override void OnOrientationChanged(OrientationChangedEventArgs e) qui fonctionne quand SupportedOrientations="Portrait"?Une méthode est-elle similaire à OnOrientationChanged?

Ce que je suis en train de faire est de mettre en œuvre des gestes comme:

  • utilisateur tourne téléphone à la position gauche du paysage et du code est exécuté
  • utilisateur tourne téléphone à la position droite du paysage et une autre code est exécuté

Mon application est orientée PortraitUp. Lorsque je définis SupportedOrientations="PortraitOrLandscape" le contenu commence à pivoter. Ou peut-être devrais-je utiliser un accéléromètre pour gérer la position du téléphone?

Répondre

3

On dirait que vous êtes après l'accéléromètre, il y a quelques aides disponibles sur CodePlex qui peut vous donner une jambe:

http://accelerometer.codeplex.com/ - aide visuelle pour comprendre ce qui se passe avec l'accéléromètre http://phone7actionpack.codeplex.com/ - comprend un changer le comportement de l'état visuel lorsque le téléphone tourne.

+0

Comme vous avez publié, accéléromètre était la seule solution raisonnable. Heureusement, il est facile à manipuler. Merci pour les liens. Pour moi, il était vraiment utile de voir Microsoft [échantillon accéléromètre.] (Http://msdn.microsoft.com/en-us/library/ff431744 (v = vs.92) .aspx) – Maku

2

Il semble que vous soyez après un événement de type "OnOrientationChangedToLandscapeLeft" (et similaire).
Ceci n'existe pas mais vous pouvez le créer vous-même avec ce qui existe.

Dans l'événement OnOrientaionChanged, vous pouvez détecter le sens de rotation de l'écran en vérifiant l'argument e puis en exécutant le code approprié en conséquence.
Quelque chose comme:

if (e.Orientation == PageOrientation.LandscapeLeft) 
{ 
    // Do whatever you want to here 
} 
else if (e.Orientation == PageOrientation.LandscapeRight) 
{ 
    // Do something else here 
} 
else 
... 
+0

Le seul problème est que «OnOrientaionChanged 'se déclenche lorsque l'orientation de la page est modifiée. Mon application est 'SupportedOrientations =" ​​Portrait "Orientation =" PortraitUp "' et OnOrientationChanged' ne démarre jamais. Je ne veux pas changer 'SupportedOrientations'' 'PortraitOrLandscape" 'parce que le contenu commence à tourner et que cela ne semble pas bien, en particulier la rotation du téléphone supposé être un geste. – Maku

+1

@Maku J'ai créé une application qui semble toujours être en mode portrait mais qui utilise l'option ci-dessus pour changer l'orientation interne. Cela fait tout ressembler à ce qu'il faisait en portrait en utilisant RotationTransforms. Ce n'est pas la solution la plus élégante mais ça marche. –

+0

Vous venez de répondre à mon ... [une autre question!] (Http://stackoverflow.com/questions/5116687/navigate-to-another-page-when-orientation-changed) Merci beaucoup pour votre contribution! – Maku

Questions connexes