Ho definito i seguenti due stati in Expression Blend. Ho provato a seguire la guida this ma sento che mi lascia in sospeso quando ho bisogno di informazioni su come e quando cambiare stato.Come modificare VisualState in WP7
Secondo la guida devo applicare un comportamento (presumo "GotoState") al mio UserControl
- Purtroppo non credo che in realtà hanno un User Control
- e anche se l'avessi fatto, avrei è necessario allegare un comportamento a entrambi i miei PortraitState
e al mio LandscapeState
?
Sembra che sia possibile collegare un GotoState
all'elemento LayoutRoot
. Quindi attribuisco il mio comportamento a quello in entrambi gli stati? Qualsiasi aiuto sarebbe molto apprezzato.
* modifica: stavo giocando nel mio file xaml.cs e ho capito che questo poteva essere il modo di farlo a livello di programmazione. quando eseguo il debug e cambio l'orientamento, inserisco la mia centralina e trovo l'orientamento corretto. Lo stato, tuttavia, non viene mai cambiato. Che cosa sto facendo di sbagliato?
protected override void OnOrientationChanged(OrientationChangedEventArgs e)
{
switch (e.Orientation)
{
case PageOrientation.Landscape:
ExtendedVisualStateManager.GoToElementState(root:this.LayoutRoot, stateName: "LandscapeState", useTransitions: true);
break;
case PageOrientation.LandscapeRight:
ExtendedVisualStateManager.GoToElementState(root:this.LayoutRoot, stateName: "LandscapeState", useTransitions: true);
break;
case PageOrientation.LandscapeLeft:
ExtendedVisualStateManager.GoToElementState(root:LayoutRoot, stateName: "LandscapeState", useTransitions: true);
break;
case PageOrientation.Portrait:
ExtendedVisualStateManager.GoToElementState(root:this.LayoutRoot, stateName: "PortraitState", useTransitions: true);
break;
case PageOrientation.PortraitUp:
ExtendedVisualStateManager.GoToElementState(root:this.LayoutRoot, stateName: "PortraitState", useTransitions: true);
break;
case PageOrientation.PortraitDown:
ExtendedVisualStateManager.GoToElementState(root:this.LayoutRoot, stateName: "PortraitState", useTransitions: true);
break;
default:
break;
}
}
EDIT2: Quando si tenta quanto sopra sembra che GotoElementState restituisce false e, secondo MSDN: "restituisce true se il controllo transizione con successo al nuovo stato, altrimenti false"
Ora mi rimane la domanda: cosa può causare il fallimento della transizione dello stato?