一、常用Task
所有的Task都有Show方法,調用Show方法啟動任務,任務執行完成一般會返回應用,所有的Task(任務)都不是自動啟動的,需要使用者手動點擊,這是WindowPhone7基於安全考慮防止泄密的吸費等問題。
這裡我們需要添加以下命名空間:
using Microsoft.Phone.Tasks;
1.1 SmsComposeTask
啟動傳送簡訊的任務,可以通過To,Body兩個屬性設定對方的號碼和簡訊的內容,在設定好To和Body的內容後,需要調用Show方法,才會顯示傳送簡訊的介面。
範例程式碼:
private void Sendbutton_Click(object sender, RoutedEventArgs e) { SmsComposeTask sendms = new SmsComposeTask(); sendms.To = "10086"; sendms.Body = "話費查詢"; sendms.Show(); }
1.2 EmailComposeTask
啟動發送Email的服務,同樣的可以通過設定To,Subject,Body,CC屬性來分別設定收件者,標題,內容和抄送人。
範例程式碼:
private void Sendbutton_Click(object sender, RoutedEventArgs e) { EmailComposeTask sendemail=new EmailComposeTask(); sendemail.To="972103830@qq.com"; sendemail.Subject=" 你好"; sendemail.Body="你好,這是。。。發給你發的簡訊!"; sendemail.Show(); }
1.3 WebBrowserTask
啟動瀏覽器服務,可以通過設定URL路徑(URL表示絕對路徑)或者Uri(相對路徑)。
代碼如下:
private void Sendbutton_Click(object sender, RoutedEventArgs e) { WebBrowserTask webtask = new WebBrowserTask(); webtask.URL = "http://www.baidu.com"; webtask.Show(); }
1.4 PhoneCallTask
啟動windows phone 打電話的服務,可以通過設定DisplayName和PhoneNumber來設定連絡人名字和連絡人電話號碼。
範例程式碼:
private void Sendbutton_Click(object sender, RoutedEventArgs e) { PhoneCallTask phoneTask = new PhoneCallTask(); phoneTask.DisplayName = "中國移動"; phoneTask.PhoneNumber = "10086"; phoneTask.Show(); }
一些Task還會返回一個執行結果的參數,這些任務一般都是繼承自ChooserBase,並包含一個監聽任務的Completed事件,可以從事件參數e 中獲得執行的結果,所有任務事件參數e都含有一個TaskResult屬性,並有三個值,即任務處理的三種情況:Ok.表示任務執行成功,Cancel.表示任務被取消,Erro.表示執行過程發生錯誤。下面我們看一看具體的任務名稱:
1.5 SavePhoneNumberTask
用來儲存電話號碼的任務,可以通過設定PhoneNumber屬性來設定儲存的電話號碼是多少。注意在此不能設定電話號碼的連絡人名稱,需要啟動任務後手動的添加。
範例程式碼:
private void Sendbutton_Click(object sender, RoutedEventArgs e) { SavePhoneNumberTask savephonenum = new SavePhoneNumberTask(); savephonenum.PhoneNumber = "15040057978"; savephonenum.Completed += new EventHandler<TaskEventArgs>(savephonenum_Completed); savephonenum.Show(); } void savephonenum_Completed(object sender, TaskEventArgs e) { if (e.Error != null) { MessageBox.Show("錯誤"); } if (e.TaskResult == TaskResult.OK) { MessageBox.Show("儲存成功!"); } if (e.TaskResult == TaskResult.Cancel) { MessageBox.Show("任務已被取消!"); } }
1.6 PhoneNumberChooserTask
用來選擇電話號碼的任務,其中事件參數e 包含一個PhoneNumber屬性,可以用來獲得選擇的號碼。
範例程式碼:
private void button1_Click(object sender, RoutedEventArgs e) { PhoneNumberChooserTask ChooserphoneNum = new PhoneNumberChooserTask(); ChooserphoneNum.Completed += new EventHandler<PhoneNumberResult>(ChooserphoneNum_Completed); ChooserphoneNum.Show(); } void ChooserphoneNum_Completed(object sender, PhoneNumberResult e) { if (e.Error == null && e.TaskResult == TaskResult.OK) { MessageBox.Show(e.PhoneNumber); } }
1.7 CameraCaptureTask
用來拍照的任務,其中事件參數e 包含一個ChosenPhoto屬性,可以用來獲得拍照的圖片。
範例程式碼:
private void TakePhotobutton_Click(object sender, RoutedEventArgs e) { CameraCaptureTask takePhoto = new CameraCaptureTask(); takePhoto.Completed += new EventHandler<PhotoResult>(takePhoto_Completed); takePhoto.Show(); } void takePhoto_Completed(object sender, PhotoResult e) { if (e.Error == null && e.TaskResult == TaskResult.OK) { BitmapImage bitmap = new BitmapImage();//定義流資料格式的圖片 bitmap.SetSource(e.ChosenPhoto);//設定流資料來源 image1.Source = bitmap;//將流資料圖片賦給Image } }
1.8 PhotoChooserTask
用來選擇圖片的任務,包含以下幾個屬性:
PixelWidth:設定選取的圖片的寬度,單位是像素
PixelHeight:設定選取圖片的高度,單位是像素
ShowCamera:設定是否允許拍照,true OR false.
如果選取的圖片大於我們所設定的大小(即PixelWidth 和PixelHeight),將自動經行裁剪到我們所設定的圖片大小。
同理事件參數 e 也包含ChosenPhoto屬性,和之前的CameraCaptureTask一樣。
範例程式碼:
private void ChoosePhotoButton_Click(object sender, RoutedEventArgs e) { PhotoChooserTask choosephoto = new PhotoChooserTask(); choosephoto.PixelWidth=200; choosephoto.PixelHeight=200; choosephoto.ShowCamera = true;choosephoto.Completed += new EventHandler<PhotoResult>(choosephoto_Completed); choosephoto.Show(); } void choosephoto_Completed(object sender, PhotoResult e) { if (e.TaskResult == TaskResult.OK && e.Error != null) { BitmapImage bitimage = new BitmapImage(); bitimage.SetSource(e.ChosenPhoto); image1.Source = bitimage; } }