因為 Windows Phone 硬體往往只有三顆鍵
Back、Home、Bing Search
Android 有實體的 Menu 硬體鍵、Windows Mobile 6.5(含) 以下有 Menu Bar
WP7 的 ApplicationBar 雖然雷同於 6.5 的 Menu Bar,
但視覺上與操作流程上的設計還是得讓我這種外行人花力氣去適應。
撰寫 Windows Mobile 專案時小弟是使用 C++/MFC 開發,
僅有拋棄式程式會使用 C#/Windows Form 的方式開發,
Windows Form 的 Menu 和 MFC 的操作比較像,
用 C#/Silverlight 還是第一次,稍微筆記一下製作 ApplicationBar 的兩種方式。
第一種是寫在 xaml 描述檔中
<phone:PhoneApplicationPage.ApplicationBar>
<shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">
<shell:ApplicationBarIconButton x:Name="btn_Save" IconUri="/Buttons/menu_save.png" Text="上傳檔案" Click="btnSave_OnClick"></shell:ApplicationBarIconButton>
<shell:ApplicationBarIconButton x:Name="btn_Add" IconUri="/Buttons/menu_add.png" Text="新增文章" Click="btnAdd_OnClick"></shell:ApplicationBarIconButton>
<shell:ApplicationBarIconButton x:Name="btn_Del" IconUri="/Buttons/menu_del.png" Text="刪除文章" Click="btnDel_OnClick"></shell:ApplicationBarIconButton>
</shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>
第二種是寫在 cs 檔中動態控制
using Microsoft.Phone.Shell;
class MyPage
{
MyPage();
~MyPage();
ApplicationBarIconButton btn_Save;
ApplicationBarIconButton btn_Add;
ApplicationBarIconButton btn_Del;
void InitPage()
{
SupportedOrientations = (SupportedPageOrientation.Portrait|SupportedPageOrientation.Landscape);
ApplicationBar appBar = new ApplicationBar();
appBar.IsVisible = true;
this.ApplicationBar = appBar;
btn_Save = new ApplicationBarIconButton(new Uri("/Buttons/menu_save.png", UriKind.Relative));
btn_Save.Text = "上傳檔案";
btn_Save.Click += new EventHandler(btSave_OnClick);
appBar.Buttons.Add(btn_Save);
btn_Add = new ApplicationBarIconButton(new Uri("/Buttons/menu_add.png", UriKind.Relative));
btn_Add.Text = "新增文章";
btn_Add.Click += new EventHandler(btnAdd_OnClick);
appBar.Buttons.Add(btn_Add);
btn_Del = new ApplicationBarIconButton(new Uri("/Buttons/menu_del.png", UriKind.Relative));
btn_Del.Text = "刪除文章";
btn_Del.Click += new EventHandler(btnDel_OnClick);
appBar.Buttons.Add(btn_Del);
}
};
此外,要記得 Menu 用到的 icon 圖片必須指定為 Content Build Action 才能正確讀取,
否則在執行時會看到所有 Menu 的圖示都是圈圈叉叉。
沒有留言:
張貼留言