このページは役に立ちましたか。
このページのコンテンツについての ご意見をお待ちしております
その他にご意見はありますか。
残り 1500 文字
MSDN ライブラリ
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Windows Phone のアプリ バーのアイコン ボタンとメニュー項目を動的に変更する方法

2014/06/18

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

このトピックでは、アプリ バーのアイコン ボタンとメニュー項目を実行時に動的に変更する方法について説明します。

アプリ バーのボタンとメニュー項目を実行時に変更するには、コードを使用してアプリ バーを作成する必要があります。アプリ バーは、データ バインディングなどのいくつかの一般的なコントロール機能をサポートしていません。このため、XAML で設定される名前のプロパティを使用してアイコン ボタンやメニュー項目のテキストを変更することはできません。

このトピックでは、ボタンを 1 つ含むアプリ バーを作成します。ユーザーがこのボタンをクリックすると、再生と一時停止が切り替わります。コードは、ボタンのテキストとアイコンの両方を変化させます。また、メニュー項目も作成して、そのテキストを切り替えます。

アプリ バーの詳細については、「Windows Phone のアプリ バー」を参照してください。

このトピックは、次のセクションで構成されています。

この手順では、ボタンに使用する再生と一時停止のアイコンを追加します。詳細については、「Windows Phoneのアプリケーション バー アイコン ボタン」を参照してください。

アイコン ボタンのイメージを追加するには

  1. Visual Studio で、新しい Windows Phone アプリケーションを作成します。

  2. ソリューション エクスプローラーで、プロジェクトを右クリックし、[追加] をポイントして、[新しいフォルダー] をクリックします。新しいフォルダーに Images という名前を付けます。

  3. ソリューション エクスプローラーで、[Images] フォルダーを右クリックし、[追加] をポイントし、[既存の項目] をクリックします。

  4. 次の場所を参照して標準アイコンを見つけます。

    C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.0\Icons\Dark

  5. 次のファイルを選択し、[追加] をクリックします。ファイル名を次のように変更します。

    元の名前

    新しい名前

    transport.play.png

    play.png

    transport.pause.png

    pause.png

  6. ソリューション エクスプローラーで、新しい 2 つのファイルを選択します。

  7. [プロパティ] ウィンドウで、新しい 2 つのファイルに次のプロパティを設定します。

    プロパティ

    ビルド アクション

    Content

    出力ディレクトリにコピー

    [コピーしない]

この手順では、アプリ バーを作成します。それから、ボタンを 1 つとメニュー項目を 1 つ追加します。詳細については、「Windows Phone のコードを使用してアプリ バーを作成する方法」を参照してください。

コードでアプリ バーを作成するには

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

  2. コードの先頭に次の名前空間をインポートします。

    using Microsoft.Phone.Shell;
    
  3. クラスに次のイベント ハンドラーを追加します。次の手順でこれらのメソッドにコードを追加します。

    private void button1_Click(object sender, EventArgs e)
    {
    }
    
    private void menuItem1_Click(object sender, EventArgs e)
    {
    }
    
    
    
  4. コンストラクターで、InitializeComponent の呼び出しの後に次のコードを追加します。このコードは、新しい ApplicationBar オブジェクトを初期化し、ボタンとメニュー項目を作成し、初期テキストとアイコンを設定し、クリック イベントのイベント ハンドラーを追加します。

    ApplicationBar = new ApplicationBar();
    
    ApplicationBarIconButton button1 = new ApplicationBarIconButton();
    button1.IconUri = new Uri("/Images/play.png", UriKind.Relative);
    button1.Text = "play";
    ApplicationBar.Buttons.Add(button1);
    button1.Click += new EventHandler(button1_Click);
    
    ApplicationBarMenuItem menuItem1 = new ApplicationBarMenuItem();
    menuItem1.Text = "menu item state 0";
    ApplicationBar.MenuItems.Add(menuItem1);
    menuItem1.Click += new EventHandler(menuItem1_Click);
    

この手順では、アイコン ボタンのイメージ、アイコン ボタンのテキスト、およびメニュー項目のテキストを変更するコードを追加します。ButtonsMenuItems は どちらも ApplicationBar オブジェクトのコレクションです。ボタンとメニュー項目を作成した順序がわかっている、また、このコレクションは通常はサイズが小さいことから、コレクション内の位置でオブジェクトにアクセスするのが最も簡単な方法です。

この手順では、テスト目的として、コードをボタン クリック イベントに配置します。作成したアプリでは、他の場所からアプリ バーを変更できます。

アイコン ボタンを動的に変更するには

  1. ボタンのクリック イベント ハンドラーに次のコードを追加します。

    private void button1_Click(object sender, EventArgs e)
    {
        ApplicationBarIconButton btn = (ApplicationBarIconButton)ApplicationBar.Buttons[0];
    
        if (btn.Text == "play")
        {
            btn.Text="pause";
            btn.IconUri = new Uri("/Images/pause.png", UriKind.Relative);
        }
        else if (btn.Text == "pause")
        {
            btn.Text="play";
            btn.IconUri = new Uri("/Images/play.png", UriKind.Relative);
        }
    }
    
  2. アプリケーションを保存し、ビルドして実行します。

  3. ボタンを何度かクリックし、アイコンとテキストの両方が変化して、また元に戻ることを確認します。

メニュー項目を動的に変更するには

  1. メニュー項目のクリック イベント ハンドラーに次のコードを追加します。

    private void menuItem1_Click(object sender, EventArgs e)
    {
        ApplicationBarMenuItem mi = (ApplicationBarMenuItem)ApplicationBar.MenuItems[0];
    
        if (mi.Text == "menu item state 0")
        {
            mi.Text="menu item state 1";
        }
        else if (mi.Text == "menu item state 1")
        {
            mi.Text="menu item state 0";
        }
    }
    
  2. アプリケーションを保存し、ビルドして実行します。

  3. メニュー項目を何度かクリックし、テキストが変化して、また元に戻ることを確認します。

表示:
© 2015 Microsoft