エクスポート (0) 印刷
すべて展開

方法: Windows Phone アプリケーションの単一ピボット コントロールで異なるアプリケーション バーを使用する

2012/02/09

このトピックでは、ユーザーがピボット ページをスワイプしたときにアプリケーション バーを変更する方法を示します。複数のピボット ページは、実際には 1 つのページ上の 1 つのコントロールなので、複数のピボット ページで自動的に同じアプリケーション バーが使用されます。通常はこの便利な動作が使用されますが、そうでない場合は選択変更イベントをキャプチャして、ユーザーがピボット ページをスワイプしたときにアプリケーション バーを変更できます。

この例では、App.xaml で XAML を使用して 2 つのグローバル アプリケーション バーを作成します。アプリケーションで、App.xaml 分離コード ファイルのコードのみを使用するか、ピボット ページのコード分離ファイルでローカル アプリケーション バーを使用して、グローバル アプリケーション バーを作成することもできます。アプリケーション バーを作成するこれらのすべての方法は、ピボット コントロールでアプリケーション バーを変更する手法でも使用できます。詳細については、「Windows Phone のアプリケーション バーの概要」を参照してください。

異なるアプリケーション バーを作成するには

  1. ソリューション エクスプローラーで、App.xaml をダブルクリックし、デザイナーで開きます。

  2. APPLICATION.RESOURCES 要素で、次のコードを追加します。これにより、2 つのアプリケーション バー (AppBar1 および AppBar2) が作成されます。AppBar1 には 1 つのボタンと 1 つのメニュー項目があり、AppBar2 には 2 つのボタンと 2 つのメニュー項目があります。AppBar1 および AppBar2 は共通の 1 つのボタンと 1 つのメニュー項目を共有しますが、完全に異なるものとすることができます。

    <Application.Resources>
    
        <shell:ApplicationBar x:Key="AppBar1" IsVisible="True" IsMenuEnabled="True">
            <shell:ApplicationBarIconButton IconUri="/Images/appbar_button1.png" Text="Button 1" Click="Button1_Click" />
            <shell:ApplicationBar.MenuItems>
                <shell:ApplicationBarMenuItem Text="MenuItem 1" Click="MenuItem1_Click" />
            </shell:ApplicationBar.MenuItems>
        </shell:ApplicationBar>
    
        <shell:ApplicationBar x:Key="AppBar2" IsVisible="True" IsMenuEnabled="True">
            <shell:ApplicationBarIconButton IconUri="/Images/appbar_button1.png" Text="Button 1" Click="Button1_Click" />
            <shell:ApplicationBarIconButton IconUri="/Images/appbar_button2.png" Text="Button 2" Click="Button2_Click" />
            <shell:ApplicationBar.MenuItems>
                <shell:ApplicationBarMenuItem Text="MenuItem 1" Click="MenuItem1_Click" />
                <shell:ApplicationBarMenuItem Text="MenuItem 2" Click="MenuItem2_Click" />
            </shell:ApplicationBar.MenuItems>
        </shell:ApplicationBar>
        
    </Application.Resources>
    
  3. ソリューション エクスプローラーで、App.xaml を右クリックし、[コードの表示] をクリックして、分離コード ファイルを開きます。

  4. App クラスの中に、次のコードを追加します。これらはクリック イベントのハンドラーです。異なるアプリケーション バーがボタンまたはメニュー項目を共有している場合、イベント ハンドラーも共有しています。

    private void Button1_Click(object sender, EventArgs e)
    {
        MessageBox.Show("Button 1 works!");
        //Do work for your application here.
    }
    
    private void Button2_Click(object sender, EventArgs e)
    {
        MessageBox.Show("Button 2 works!");
        //Do work for your application here.
    }
    
    private void MenuItem1_Click(object sender, EventArgs e)
    {
        MessageBox.Show("Menu item 1 works!");
        //Do work for your application here.
    }
    
    private void MenuItem2_Click(object sender, EventArgs e)
    {
        MessageBox.Show("Menu item 2 works!");
        //Do work for your application here.
    }
    

単一のピボット コントロールで異なるアプリケーション バーを使用するには

  1. エディターで、ピボット ページのコード分離ファイルを開きます。

  2. コードの先頭に、次のステートメントを追加します。

    using Microsoft.Phone.Shell;
    
  3. ページ クラスで、コンストラクターの後に、次のコードを追加します。このコードは選択変更イベントを処理し、選択された新しいピボット アイテムに応じて、異なるアプリケーション バーを選択します。さらに多くのピボット アイテムがある場合は case を追加できます。複数のピボット アイテムが 1 つのアプリケーション バーを共有し、その他のピボット アイテムが別のアプリケーション バーを共有している場合は、case がフォール スルーするようにできます。

    private void Pivot_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        switch (((Pivot)sender).SelectedIndex)
            {
                case 0:
                    ApplicationBar = ((ApplicationBar)Application.Current.Resources["AppBar1"]);
                    break;
    
                case 1:
                    ApplicationBar = ((ApplicationBar)Application.Current.Resources["AppBar2"]);
                    break;
        }
    }
    

表示:
© 2014 Microsoft