本文是“Windows Phone 7 開發 31 日談”系列的第8日。
昨天介紹了如何在Windows Phone程式中使用啟動器.今天,我們來看看程式中與啟動器相似的功能,選取器。
什麼是選取器?
選取器比啟動器略複雜一些,因為它們要將資料帶回到程式中,而啟動器只是讓使用者去完成一個任務。我們將講解此平台上每個可用的選取器。本文的最後,我提供了一個可下載的包含了所有描述過的選取器的程式碼範例。
對每個選取器而言,你都要確保在代碼後置的檔案中包含了下面的語句。我們需要引用Microsoft.Phone.Tasks名稱空間。
using Microsoft.Phone.Tasks;
下面是目前可用的選取器:
- CameraCaptureTask – 為使用者提供在程式中直接拍照的功能。
- EmailAddressChooserTask – 在程式中允許使用者從連絡人裡面選擇一個郵件地址。
- PhoneNumberChooserTask – 在程式中允許使用者從連絡人裡面選擇一個電話號碼。
- PhotoChooserTask – 在程式中允許使用者從裝置裡選擇一張照片。
使用選取器
每個選取器都有自己的屬性,但在設定之後,你需要調用Show方法向使用者展示。你可以在選取器中用Show方法來實現。在眾多選取器中要記住的一點是在使用者做出選擇後你需要建立一個事件處理常式。否則,你將無法捕獲他們所選的資料。
作為例子,來看一下CameraCaptureTask:
CameraCaptureTask cct = new CameraCaptureTask();
cct.Completed += new EventHandler<PhotoResult>(cct_Completed);
cct.Show();
這是我添加的事件處理常式:
void cct_Completed(object sender, PhotoResult e)
{
BitmapImage bmp = new BitmapImage();
bmp.SetSource(e.ChosenPhoto);
image1.Source = bmp;
}
你會注意到我為在使用者拍照時建立了一個事件處理常式。這也是我在程式中擷取並使用照片資料的方式。當你在模擬器中測試時,你會看到實際上它並不能利用網路攝影機。而只是建立了一幅在白色畫布中有一個旋轉黑塊的假圖片。這應該可以滿足你的測試了,但我還是建議在上傳你的程式到Marketplace之前用真實裝置測試一下。
我已經將每一個選取器的名字連結到MSDN相應的文章中,在那兒你可以看到所有的屬性。所以我就不在這兒進行這種大量的複製勞動了。明天我們討論在調試Windows Phone 7應用程式時一些對你有用的工具。
下載範例程式碼
這個例子包含了上述的所有選取器。
原文地址:
http://www.jeffblankenburg.com/post/31-Days-of-Windows-Phone-7c-Day-8-Choosers.aspx
如果大家喜歡我的文章,請點擊“推薦”,謝謝!