Windows Phone 菜單欄

一.Application Bar

    Windows Phone中的菜單欄最多可以顯示4個圖標按鈕。這些圖標會自動地被從左向右添加到菜單欄中。如果還有額外的選項可以通過菜單項來添加,這些菜單項默認是不顯示的。只有在點擊菜單欄右側的省略號(或省略號下方的區域)時纔會顯示出來,在電話屏幕的方向改變時,系統會自動處理菜單欄的方向(包括按鈕和菜單項)。

按鈕中的圖標應該是48 x 48像素的,其他的尺寸會自動被縮放爲48x48的,不過這通常會導致失真。

二.通過XAML代碼創建菜單欄

    在一個新建的Silverlight for Windows Phone項目中,默認的MainPage.xaml文件中有一段被註釋掉的代碼,這就是與ApplicationBar相關的代碼:

複製代碼
代碼
    <phone:PhoneApplicationPage.ApplicationBar>
        
<shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">
            
<shell:ApplicationBarIconButton IconUri="/Images/appbar.add.rest.png" Text="Add" Click="btnAdd_Click"/>
            
<shell:ApplicationBarIconButton IconUri="/Images/appbar.minus.rest.png" Text="Minus" Click="btnMinus_Click"/>
            
<shell:ApplicationBar.MenuItems>
                
<shell:ApplicationBarMenuItem Text="菜單項1" Click="menuItem1_Click"/>
                
<shell:ApplicationBarMenuItem Text="菜單項2" Click="menuItem2_Click"/>
            
</shell:ApplicationBar.MenuItems>
        
</shell:ApplicationBar>
    
</phone:PhoneApplicationPage.ApplicationBar>
複製代碼

圖中的IconUri並不存在,我們需要自己來添加圖標文件,注意圖片的Build Action屬性應該爲Content,然後修改相應的路徑即可。關於圖標我們可以在本機的X:\Program Files\Microsoft SDKs\Windows Phone\v7.0\Icons目錄下找到。IsVisible用來控制菜單欄的可見性,IsMenuEnabled用來控制是否彈出菜單項。同時我們還可以爲圖標按鈕和菜單項添加Click事件處理程序。

三.通過託管代碼創建菜單欄

下面演示通過託管代碼創建菜單欄,在程序中引用ApplicationBar類需要添加using Microsoft.Phone.Shell;名稱空間。完整代碼如下:

複製代碼
代碼
public MainPage()
        {
            InitializeComponent();

            ApplicationBar applicationBar;
            applicationBar 
= new ApplicationBar();

            
this.ApplicationBar = applicationBar;

            applicationBar.IsMenuEnabled 
= true;
            applicationBar.IsVisible 
= true;
            ApplicationBarIconButton btnAdd 
= new ApplicationBarIconButton(new Uri("/Images/appbar.add.rest.png", UriKind.Relative));
            btnAdd.Text 
= "cancel";
            ApplicationBarIconButton btnMinus 
= new ApplicationBarIconButton(new Uri("/Images/appbar.minus.rest.png", UriKind.Relative));
            btnMinus.Text 
= "close";
            applicationBar.Buttons.Add(btnAdd);
            applicationBar.Buttons.Add(btnMinus);
            ApplicationBarMenuItem menuItem1 
= new ApplicationBarMenuItem("菜單項1");
            ApplicationBarMenuItem menuItem2 
= new ApplicationBarMenuItem("菜單項2");
            applicationBar.MenuItems.Add(menuItem1);
            applicationBar.MenuItems.Add(menuItem2);
            btnAdd.Click 
+= new EventHandler(btnAdd_Click);
            btnMinus.Click 
+= new EventHandler(btnMinus_Click);
            menuItem1.Click 
+= new EventHandler(menuItem1_Click);
            menuItem2.Click 
+= new EventHandler(menuItem2_Click);
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章