Expression Blendで次の2つの状態を定義しました。私はthisガイドに従うことを試みてきましたが、いつどのように状態を変えるかについての情報が必要なときに私がぶら下がっているように感じます。WP7でVisualStateを変更するには
私はUserControl
に(私は「GotoState」を想定する)行動を添付していますガイドによると - 残念ながら、私は私が実際にUser Control
を持っていないと思う - と私はやっていても、私は希望PortraitState
と私のLandscapeState
の両方にビヘイビアを付ける必要がありますか?
をLayoutRoot
要素に添付できるようです。私はどちらの州でも私の行動をそれに付けるのですか?どんな助けでも大歓迎です。
*編集:私はxaml.csファイルで遊んでいましたが、これはプログラムで実行する方法かもしれないと考えました。私がスイッチのケースを入力し、正しい方向を見つけるために、私は方向をデバッグし、変更するとき。しかし、状態は決して切り替えられません。私は間違って何をしていますか?
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:それ以上GotoElementStateがfalseを返したように思わしようと、MSDNによるとき:「コントロールが正常に新しい状態に移行している場合はtrueを返し、そうでない場合はfalse」
ここで、私の状態遷移が失敗する原因は何ですか?