方法: Windows Phone のコードでアプリケーション バーを作成する

2012/02/09

ユーザーがアプリケーションで最も一般的なタスクにすばやくアクセスできるようにするアプリケーション バーを、C# または Visual Basic コードを使用して作成できます。アプリケーション バーを XAML とコードのどちらで作成すべきか決定する際は、「Windows Phone のアプリケーション バーの概要」を参照してください。

ユーザーが拡張したアプリケーション バーの例を次の図に示します。

メニュー項目がある展開されたアプリケーション バー

XAML ファイルを編集しなくても、コードのみでアプリケーションにアプリケーション バーを追加できます。この手順は、ページが含まれる Windows Phone アプリケーションがあることを前提としています。画像をアプリケーション バーのアイコン ボタンに使用するには、事前にそれらをアプリケーションに追加する必要があります。詳細については、「Windows Phone のアプリケーション バーのアイコン ボタン」を参照してください。

コードでアプリケーション バーを作成するには

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

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

    Imports Microsoft.Phone.Shell
    
  3. ページのコンストラクターで、InitializeComponent の呼び出しの後に次のコードを追加します。このコードは新しい ApplicationBar オブジェクトを初期化し、そのオブジェクトをページの ApplicationBar プロパティに割り当てます。

    ApplicationBar = new ApplicationBar()
    
  4. 必要に応じてアプリケーション バーのプロパティを設定します。プロパティの詳細については、「Windows Phone のアプリケーション バーの概要」を参照してください。

    ApplicationBar.Mode = ApplicationBarMode.Default
    ApplicationBar.Opacity = 1.0
    ApplicationBar.IsVisible = true
    ApplicationBar.IsMenuEnabled = true
    
  5. 必要に応じて 1 つまたは複数の ApplicationBarIconButton オブジェクトを作成します。アイコン画像およびボタンのテキストを設定し、それらをアプリケーション バーに追加します。ボタンのテキストを設定しない場合、実行時の例外が発生します。

    Dim button1 as ApplicationBarIconButton = new ApplicationBarIconButton()
    button1.IconUri = new Uri("/Images/YourImage.png", UriKind.Relative)
    button1.Text = "button 1"
    ApplicationBar.Buttons.Add(button1)
    
  6. メニュー項目は省略可能です。必要に応じて 1 つまたは複数の ApplicationBarMenuItem オブジェクトを作成します。テキストを設定し、それをアプリケーション バーに追加します。

    Dim menuItem1 as ApplicationBarMenuItem = new ApplicationBarMenuItem()
    menuItem1.Text = "menu item 1"
    ApplicationBar.MenuItems.Add(menuItem1)
    
  7. 完成したアプリケーション バーの例を次に示します。クリックのイベントとハンドラーは次の手順で追加します。

    Public Sub New()
        InitializeComponent()
            
        ApplicationBar = new ApplicationBar()
    
        ApplicationBar.Mode = ApplicationBarMode.Default
        ApplicationBar.Opacity = 1.0
        ApplicationBar.IsVisible = true
        ApplicationBar.IsMenuEnabled = true
    
        Dim button1 as ApplicationBarIconButton = new ApplicationBarIconButton()
        button1.IconUri = new Uri("/Images/YourImage.png", UriKind.Relative)
        button1.Text = "button 1"
        ApplicationBar.Buttons.Add(button1)
    
        Dim menuItem1 as ApplicationBarMenuItem = new ApplicationBarMenuItem()
        menuItem1.Text = "menu item 1"
        ApplicationBar.MenuItems.Add(menuItem1)
    End Sub
    

アイコン ボタンとメニュー項目は、コード内で処理できるクリック イベントを公開します。

クリック イベントを処理するには

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

  2. アイコン ボタンやメニュー項目ごとに、ユーザーがクリックしたときに呼び出すイベントを特定します。前の手順で作成したアプリケーション バーにクリック イベントを特定した例を示します。

    Dim button1 as ApplicationBarIconButton = new ApplicationBarIconButton()
    button1.IconUri = new Uri("/Images/YourImage.png", UriKind.Relative)
    button1.Text = "button 1"
    ApplicationBar.Buttons.Add(button1)
    AddHandler button1.Click, AddressOf button1_Click
    
    Dim menuItem1 as ApplicationBarMenuItem = new ApplicationBarMenuItem()
    menuItem1.Text = "menu item 1"
    ApplicationBar.MenuItems.Add(menuItem1)
    AddHandler menuItem1.Click, AddressOf menuItem1_Click
    
  3. アイコン ボタンやメニュー項目ごとに、ユーザーがクリックしたときに呼び出すイベントを追加します。ページ クラス内にコードを追加します。前の手順で作成したアプリケーション バーに追加したクリック イベントの例を示します。

     Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs)
    
        MessageBox.Show("Button 1 works!")
        'Do work for your application here.
    End Sub
    
    
    Private Sub menuItem1_Click(ByVal sender As Object, ByVal e As EventArgs)
    
        MessageBox.Show("Menu item 1 works!")
        'Do work for you application here.  
    End Sub
    

表示: