WP TIPS に戻る

パノラマを横スライドアニメーションする

パノラマは Pivot と並んで横スクロールが出来るという WP7 を特徴づけているコントロールの一つです。
この Panorama コントロールは一つのコントロールになっていますが、内部的には3つのコントロールで構成されています。

  1. PanningBackroundLayer
  2. PanningLayer
  3. PanningTitleLayer
    Panorama コントロールをスライドさせると別々にスクロールする、タイトル部分、背景部分、コンテンツ部分は、これら3種類のクラスが別々に動作し制御しています。

PanningLayer を取得する

画面上に配置した Panorama をスライドさせるには、Panorama のインスタンスから既に存在している PanningLayer を取得します。

PanningLayer pl;

private void GetPanningLayer(Panorama panorama)
{          
   // パノラマ配下の数を念のため確認。
   int count = VisualTreeHelper.GetChildrenCount(panorama);
   if (count > 0)
   {
       // 直下の Grid を取得
       Grid g = (Grid)VisualTreeHelper.GetChild(panorama, 0);

       // Grid 配下の PanningLayer を取得
       PanningLayer pl = (PanningLayer)VisualTreeHelper.GetChild(g, 2);

       // 格納しておく
       this.pl = pl;
   }
}

Micorosoft.Phone.Controls.Primitives 名前空間にあるクラスで自由に使えますので、