添加Application Bar
用 Expression Blend很直觀。
添加Application Bar:右擊 Objects and Timeline 面板上的PhoneApplicationPage,選擇 Add ApplicationBar。
添加ApplicationBarIconButton: 右擊ApplicationBar,選擇Add ApplicationBarIconButton。
添加ApplicationBarMenuItem: 右擊ApplicationBar,選擇Add ApplicationBarMenuItem。(下面僅以IconButton為例,MenuItem與其類似)
ApplicationBarIconButton的屬性面板:
Name用來命名。Search欄用來搜尋屬性,不過ApplicationBarIconButton的屬性太少,都展開在下面了。
IconUri下拉框能找到很多內建的按鈕表徵圖,…可以自訂表徵圖檔案路徑。
Text是:在觸摸右邊…的時候,表徵圖按鈕上浮,露出在每個表徵圖下方的介紹性文字。
若要添加事件,則選擇到右上閃電所在的面板,在Click後面的文字框裡雙擊。
逐個設定比較麻煩,因此用迴圈為每個功能表項目的點擊事件Binder 方法:
using Microsoft.Phone.Shell; 使ApplicationBarMenuItem可見
foreach (ApplicationBarMenuItem menuItem in this.ApplicationBar.MenuItems)
{
menuItem.Click += new EventHandler(ApplicationBarMenuItem_Click);
}
在ApplicationBarMenuItem_Click裡把sender類型轉換成ApplicationBarMenuItem取到不同的屬性值。
作者的代碼中用的是介面IApplicationBarMenuItem而非具體的類ApplicationBarMenuItem,原因是微軟的wp team為了將來擴充更靈活,但這裡我們不必在乎。
ApplicationBarIconButton的初始化
ApplicationBarIconButton控制項只在Xaml裡面有是不行的,InitializeComponent並不能初始化它
// Assign application bar buttons to member fields, because this cannot be done by InitializeComponent:
this.sosButton = this.ApplicationBar.Buttons[0] as ApplicationBarMenuItem;
this.strobeButton = this.ApplicationBar.Buttons[1] as ApplicationBarMenuItem;
作者的源碼裡,是把所有圖片放到了Images目錄下。但是通過Blend去添加圖片的時候,會自動建立icons目錄,因此還是統一放到icons目錄裡好些。
Windows Phone的MessageBox是簡化了的,只有兩個按鈕,且按鈕文本不能自訂。若要自訂MessageBox,則需要用到Microsoft.Xna.Framework.GamerServices。詳見58頁。