修鍊九陰真經Windows Phone開發 (5):ApplicationBar最佳實務

來源:互聯網
上載者:User

本文和大家重點學習一下Windows Phone開發中ApplicationBar用法,ApplicationBar就是所謂的功能表列,它包括Iconbutton和Menu兩種類型。Iconbutton就相當於功能表列裡的工具列,可以帶表徵圖;Menu就是菜單了,但是沒有二級菜單。

Windows Phone開發中ApplicationBar用法

對於WindowsPhone7程式來說,UI是用Sliverlight來開發的,但是並不完全是Sliverlight的全集,與子集的關係,因為Phone7上有的API或功能PC上是沒有的(比如這個applicationbar),那PC上的sliverlight就更不用說了。

ApplicationBar就是所謂的功能表列,它包括Iconbutton和Menu兩種類型。Iconbutton就相當於功能表列裡的工具列,可以帶表徵圖;Menu就是菜單了,但是沒有二級菜單。在建立之前一定要先在Reference裡加入Microsoft.Phone.shell,並且在xaml頁面加上xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone.Shell".

Windows Phone ApplicationBar包含了ApplicationBarIconButton和ApplicationBarMenuItem,最多隻能添加四個按鈕,菜單通過ApplicationBar右邊的省略符號來展開,都繼承自Microsoft.Phone.Shell命名空間,所以在引用時前面都有shell的標誌,如:

應用程式欄不是SL控制項,所以不支援資料繫結。

 

一、在XAML前台中建立應用程式欄

    <phone:PhoneApplicationPage.ApplicationBar>        <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">            <shell:ApplicationBarIconButton x:Name="appbarbutton1" IconUri="/icons/appbar.save.rest.png" Text="Save" Click="appbarbutton1_Click"/>            <shell:ApplicationBarIconButton x:Name="appbarbutton2" IconUri="/icons/appbar.delete.rest.png" Text="Delete"/>            <shell:ApplicationBar.MenuItems>                <shell:ApplicationBarMenuItem x:Name="appbarmenuitem1" Text="Open"/>                <shell:ApplicationBarMenuItem x:Name="appbarmenuitem2" Text="Exit"/>            </shell:ApplicationBar.MenuItems>        </shell:ApplicationBar>    </phone:PhoneApplicationPage.ApplicationBar>

應用程式欄不是SL控制項,所以不支援資料繫結,這意味著用XAML來實現的話,按鍵標籤文字串值必須在XAML中的寫入程式碼,並且不能本地化

 

      ApplicationBarIconButton的表徵圖可以使用自己設計的表徵圖(尺寸48 x 48),也可以使用系統的表徵圖,系統的表徵圖通過Blend 4.0來添加,如

Windows Phone開發中要建立IconBar,就一定要有Icon,Phone7對Icon的要求比較嚴:大小一定是48X48相素的png圖,圖型置中,前景色彩一般為白色,大小為26X26.有了圖片就可以建立了,如果沒有也沒有關係,微軟給提供了一套表徵圖http://www.microsoft.com/downloads/details.aspx?familyid=369B20F7-9D30-4CFF-8A1B-F80901B2DA93&displaylang=en。

 

二、通過代碼訪問ApplicationBar

從XAML頁面中可以看出,ApplicationBarIconButton和ApplicationBarMenuItem是繼承自ApplicationBar,ApplicationBar又繼承自PhoneApplicationPage命名空間,而其他SilverLight頁面控制項是直接繼承自PhoneApplicationPage命名空間的。

      所以訪問ApplicationBar的控制項不能像訪問Page內容一樣,首先添加命名空間Microsoft.Phone.Shell,如

using System;using Microsoft.Phone.Controls;using Microsoft.Phone.Shell;namespace PhoneApp1{    public partial class MainPage : PhoneApplicationPage    {        // Constructor        public MainPage()        {            InitializeComponent();            appbarbutton1 = ApplicationBar.Buttons[0] as ApplicationBarIconButton;            appbarmenuitem1 = ApplicationBar.MenuItems[0] as ApplicationBarMenuItem;                    }        private void appbarbutton1_Click(object sender, EventArgs e)        {            appbarbutton1.IconUri = new Uri("/icons/appbar.stop.rest.png", UriKind.RelativeOrAbsolute);            appbarmenuitem1.Text = "Close";        }    }}

 

三、在代碼中建立應用程式欄

使用代碼來實現功能表列

  1. 建立一個項目,命名為ApplicatonBarByCode,建立檔案夾Images,並匯入相關資源檔,對appbar.add.rest.png 設定其Build Action的值為Content,也可以點F4快速鍵的。開啟MainPage.xaml.cs檔案,首先我們要引入一些shell,所以增加如下代碼:      
using Microsoft.Phone.Shell;
          2.  在建構函式裡輸入如下代碼:
public MainPage()
{
InitializeComponent();

//聲明一個功能表列,並且設定它可見和Menu可以使用
ApplicationBar = new ApplicationBar();
ApplicationBar.IsVisible = true;
ApplicationBar.IsMenuEnabled = true;
}

   3.  增加三個功能表按鈕和兩個MenuItem,如下:

  

public MainPage()
{
InitializeComponent();

//初始化一個功能表列,並且設定它可見和Menu可以使用
ApplicationBar = new ApplicationBar();
ApplicationBar.IsVisible = true;
ApplicationBar.IsMenuEnabled = true;

//設定三個功能表按鈕
ApplicationBarIconButton btnAdd = new ApplicationBarIconButton(new Uri("/Images/appbar.add.rest.png", UriKind.Relative));
btnAdd.Text = "add";
ApplicationBarIconButton btnSave = new ApplicationBarIconButton(new Uri("/Images/appbar.save.rest.png", UriKind.Relative));
btnSave.Text = "save";
ApplicationBarIconButton btnDelete = new ApplicationBarIconButton(new Uri("/Images/appbar.delete.rest.png", UriKind.Relative));
btnDelete.Text = "delete";

//將這三個功能表按鈕加入到功能表列中
ApplicationBar.Buttons.Add(btnAdd);
ApplicationBar.Buttons.Add(btnSave);
ApplicationBar.Buttons.Add(btnDelete);

//設定兩個MenuItem
ApplicationBarMenuItem menuItem1 = new ApplicationBarMenuItem("Menu Item1");
ApplicationBarMenuItem menuItem2 = new ApplicationBarMenuItem("Menu Item2");

ApplicationBar.MenuItems.Add(menuItem1);
ApplicationBar.MenuItems.Add(menuItem2);
}
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.