エクスポート (0) 印刷
すべて展開
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Windows Phone の単一 Pivot コントロールで異なるアプリ バーを使用する方法

2014/06/18

対象: Windows Phone 8 および Windows Phone Silverlight 8.1 | Windows Phone OS 7.1

このトピックでは、ユーザーがピボット ページをスワイプしたときにアプリケーション バーを変更する方法を示します。複数のピボット ページは、実際には 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;
        }
    }
    

表示:
© 2015 Microsoft