[索引頁]
[源碼下載]
作者:webabcd
介紹
與眾不同 windows phone 7.5 (sdk 7.1) 之選擇器
- AddressChooserTask - 選擇聯系人的地址
- EmailAddressChooserTask - 選擇聯系人的email
- PhoneNumberChooserTask - 選擇聯系人的電話
- SaveContactTask - 保存聯系方式
- SaveEmailAddressTask - 保存電子郵件地址
- SavePhoneNumberTask - 保存電話號碼
- SaveRingtoneTask - 保存鈴聲
- PhotoChooserTask - 從圖庫里選擇照片
- CameraCaptureTask - 相機拍照
- GameInviteTask - 游戲邀請(邀請其他人加入我的游戲會話)
示例
1、AddressChooserTask 的 Demo
AddressChooserTask.xaml.cs
/** AddressChooserTask - 選擇聯系人的地址* Completed - 選中地址之后所執行的事件* Show() - 顯示聯系人列表* * TaskResult - 用戶選擇后的結果* OK - 成功* Cancel - 取消* None - 失敗* * AddressResult - Completed 事件的事件參數* DisplayName - 聯系人名稱* Address - 聯系人的地址*/using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using Microsoft.Phone.Controls;using Microsoft.Phone.Tasks;namespace Demo.Choosers {public partial class AddressChooserTaskDemo : PhoneApplicationPage{private AddressChooserTask _addressChooserTask;public AddressChooserTaskDemo(){InitializeComponent();}private void btnDemo_Click(object sender, RoutedEventArgs e){_addressChooserTask = new AddressChooserTask();_addressChooserTask.Completed += new EventHandler<AddressResult>(_addressChooserTask_Completed);try{_addressChooserTask.Show();}catch (Exception ex){MessageBox.Show(ex.ToString());}}void _addressChooserTask_Completed(object sender, AddressResult e){if (e.TaskResult == TaskResult.OK){MessageBox.Show("“" + e.DisplayName + "”的地址是:" + e.Address);}}} }
?
2、EmailAddressChooserTask?的 Demo
EmailAddressChooserTask.xaml.cs
/** EmailAddressChooserTask - 選擇聯系人的email* Completed - 選中email之后所執行的事件* Show() - 顯示聯系人列表* * TaskResult - 用戶選擇后的結果* OK - 成功* Cancel - 取消* None - 失敗* * EmailResult - Completed 事件的事件參數* DisplayName - 聯系人名稱* Email - 聯系人的email*/using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using Microsoft.Phone.Controls;using Microsoft.Phone.Tasks;namespace Demo.Choosers {public partial class EmailAddressChooserTaskDemo : PhoneApplicationPage{private EmailAddressChooserTask _emailAddressChooserTask;public EmailAddressChooserTaskDemo(){InitializeComponent();}private void btnDemo_Click(object sender, RoutedEventArgs e){_emailAddressChooserTask = new EmailAddressChooserTask();_emailAddressChooserTask.Completed += new EventHandler<EmailResult>(_emailAddressChooserTask_Completed);try{_emailAddressChooserTask.Show();}catch (Exception ex){MessageBox.Show(ex.ToString());}}void _emailAddressChooserTask_Completed(object sender, EmailResult e){if (e.TaskResult == TaskResult.OK){MessageBox.Show("“" + e.DisplayName + "”的email是:" + e.Email);}}} }
?
3、PhoneNumberChooserTask 的 Demo
PhoneNumberChooserTask.xaml.cs
/** PhoneNumberChooserTask - 選擇聯系人的電話* Completed - 選中電話之后所執行的事件* Show() - 顯示聯系人列表* * TaskResult - 用戶選擇后的結果* OK - 成功* Cancel - 取消* None - 失敗* * PhoneNumberResult - Completed 事件的事件參數* DisplayName - 聯系人名稱* PhoneNumber - 聯系人的電話*/using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using Microsoft.Phone.Controls;using Microsoft.Phone.Tasks;namespace Demo.Choosers {public partial class PhoneNumberChooserTaskDemo : PhoneApplicationPage{private PhoneNumberChooserTask _phoneNumberChooserTask;public PhoneNumberChooserTaskDemo(){InitializeComponent();}private void btnDemo_Click(object sender, RoutedEventArgs e){_phoneNumberChooserTask = new PhoneNumberChooserTask();_phoneNumberChooserTask.Completed += new EventHandler<PhoneNumberResult>(_phoneNumberChooserTask_Completed);try{_phoneNumberChooserTask.Show();}catch (Exception ex){MessageBox.Show(ex.ToString());}}void _phoneNumberChooserTask_Completed(object sender, PhoneNumberResult e){if (e.TaskResult == TaskResult.OK){MessageBox.Show("“" + e.DisplayName + "”的電話號碼是:" + e.PhoneNumber);}}} }
?
4、SaveContactTask 的 Demo
SaveContactTask.xaml.cs
/** SaveContactTask - 保存聯系方式* Completed - 完成保存操作(成功、取消、失敗)之后所執行的事件* FirstName, MiddleName, LastName, Nickname, HomeAddressCity, HomeAddressCountry, HomeAddressState, HomeAddressStreet, HomeAddressZipCode, HomePhone, WorkAddressCity, WorkAddressCountry, WorkAddressState, WorkAddressStreet, WorkAddressZipCode, WorkEmail, WorkPhone, Suffix, Title, Website, JobTitle, Company, MobilePhone, PersonalEmail, OtherEmail, Notes* Show() - 顯示用于保存聯系方式的窗口* * TaskResult - 任務結果* OK - 成功* Cancel - 取消* None - 失敗*/using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using Microsoft.Phone.Controls;using Microsoft.Phone.Tasks;namespace Demo.Choosers {public partial class SaveContactTaskDemo : PhoneApplicationPage{private SaveContactTask _saveContactTask;public SaveContactTaskDemo(){InitializeComponent();}private void btnDemo_Click(object sender, RoutedEventArgs e){_saveContactTask = new SaveContactTask();_saveContactTask.Completed += new EventHandler<SaveContactResult>(_saveContactTask_Completed);try{_saveContactTask.FirstName = "web";_saveContactTask.LastName = "abcd";_saveContactTask.MobilePhone = "11111111111";_saveContactTask.Show();}catch (System.InvalidOperationException ex){MessageBox.Show(ex.ToString());}}void _saveContactTask_Completed(object sender, SaveContactResult e){switch (e.TaskResult){case TaskResult.OK:MessageBox.Show("保存成功");break;case TaskResult.Cancel:MessageBox.Show("取消保存");break;case TaskResult.None:MessageBox.Show("無法保存");break;}}} }
?
5、SaveEmailAddressTask 的 Demo
SaveEmailAddressTask.xaml.cs
/** SaveEmailAddressTask - 保存電子郵件地址* Completed - 完成保存操作(成功、取消、失敗)之后所執行的事件* Email - 需要保存的電子郵件地址* Show() - 顯示用于保存電子郵件地址的窗口* * TaskResult - 任務結果* OK - 成功* Cancel - 取消* None - 失敗*/using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using Microsoft.Phone.Controls;using Microsoft.Phone.Tasks;namespace Demo.Choosers {public partial class SaveEmailAddressTaskDemo : PhoneApplicationPage{private SaveEmailAddressTask _saveEmailAddressTask;public SaveEmailAddressTaskDemo(){InitializeComponent();}private void btnDemo_Click(object sender, RoutedEventArgs e){_saveEmailAddressTask = new SaveEmailAddressTask();_saveEmailAddressTask.Completed += new EventHandler<TaskEventArgs>(_saveEmailAddressTask_Completed);try{_saveEmailAddressTask.Email = "a@b.c";_saveEmailAddressTask.Show();}catch (System.InvalidOperationException ex){MessageBox.Show(ex.ToString());}}void _saveEmailAddressTask_Completed(object sender, TaskEventArgs e){switch (e.TaskResult){case TaskResult.OK:MessageBox.Show("保存成功");break;case TaskResult.Cancel:MessageBox.Show("取消保存");break;case TaskResult.None:MessageBox.Show("無法保存");break;}}} }
?
6、SavePhoneNumberTask 的 Demo
SavePhoneNumberTask.xaml.cs
/** SavePhoneNumberTask - 保存電話號碼* Completed - 完成保存操作(成功、取消、失敗)之后所執行的事件* PhoneNumber - 需要保存的電話號碼* Show() - 顯示用于保存電話號碼的窗口* * TaskResult - 任務結果* OK - 成功* Cancel - 取消* None - 失敗*/using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using Microsoft.Phone.Controls;using Microsoft.Phone.Tasks;namespace Demo.Choosers {public partial class SavePhoneNumberTaskDemo : PhoneApplicationPage{private SavePhoneNumberTask _savePhoneNumberTask;public SavePhoneNumberTaskDemo(){InitializeComponent();}private void btnDemo_Click(object sender, RoutedEventArgs e){_savePhoneNumberTask = new SavePhoneNumberTask();_savePhoneNumberTask.Completed += new EventHandler<TaskEventArgs>(_savePhoneNumberTask_Completed);try{_savePhoneNumberTask.PhoneNumber = "11111111111";_savePhoneNumberTask.Show();}catch (System.InvalidOperationException ex){MessageBox.Show(ex.ToString());}}void _savePhoneNumberTask_Completed(object sender, TaskEventArgs e){switch (e.TaskResult){case TaskResult.OK:MessageBox.Show("保存成功");break;case TaskResult.Cancel:MessageBox.Show("取消保存");break;case TaskResult.None:MessageBox.Show("無法保存");break;}}} }
?
7、SaveRingtoneTask 的 Demo
SaveRingtoneTask.xaml.cs
/** SaveRingtoneTask - 保存鈴聲* Completed - 保存鈴聲之后所執行的事件* Source - 鈴聲文件的地址* IsShareable - 指示該鈴聲是否可被其他應用程序訪問* DisplayName - 鈴聲的名稱(顯示用)* Show() - 顯示保存鈴聲窗口* * TaskResult - 任務結果* OK - 成功* Cancel - 取消* None - 失敗*/using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using Microsoft.Phone.Controls;using Microsoft.Phone.Tasks;namespace Demo.Choosers {public partial class SaveRingtoneTaskDemo : PhoneApplicationPage{private SaveRingtoneTask _saveRingtoneChooser;public SaveRingtoneTaskDemo(){InitializeComponent();}private void btnDemo_Click(object sender, RoutedEventArgs e){_saveRingtoneChooser = new SaveRingtoneTask();_saveRingtoneChooser.Completed += new EventHandler<TaskEventArgs>(_saveRingtoneChooser_Completed);try{_saveRingtoneChooser.Source = new Uri("appdata:/Assets/SuperMario.mp3"); // appdata: 代表程序包內// saveRingtoneChooser.Source = new Uri("isostore:/myTone.mp3"); // isostore: 代表獨立存儲// _saveRingtoneChooser.Source = new Uri("http://a.b.c/d.mp3"); // 網絡地址_saveRingtoneChooser.IsShareable = true;_saveRingtoneChooser.DisplayName = "超級馬里奧鈴聲";_saveRingtoneChooser.Show();}catch (System.InvalidOperationException ex){MessageBox.Show(ex.ToString());}}void _saveRingtoneChooser_Completed(object sender, TaskEventArgs e){switch (e.TaskResult){case TaskResult.OK:MessageBox.Show("保存成功");break;case TaskResult.Cancel:MessageBox.Show("取消保存");break;case TaskResult.None:MessageBox.Show("無法保存");break;}}} }
?
8、PhotoChooserTask 的 Demo
PhotoChooserTask.xaml.cs
/** PhotoChooserTask - 從圖庫里選擇照片* Completed - 選中照片之后所執行的事件* Show() - 顯示圖庫* * TaskResult - 任務結果* OK - 成功* Cancel - 取消* None - 失敗* * PhotoResult - Completed 事件的事件參數* ChosenPhoto - 照片數據(System.IO.Stream 類型)* OriginalFileName - 照片的文件名*/using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using Microsoft.Phone.Controls;using Microsoft.Phone.Tasks;namespace Demo.Choosers {public partial class PhotoChooserTaskDemo : PhoneApplicationPage{private PhotoChooserTask _photoChooserTask;public PhotoChooserTaskDemo(){InitializeComponent();}private void btnDemo_Click(object sender, RoutedEventArgs e){_photoChooserTask = new PhotoChooserTask();_photoChooserTask.Completed += new EventHandler<PhotoResult>(_photoChooserTask_Completed);try{_photoChooserTask.Show();}catch (Exception ex){MessageBox.Show(ex.ToString());}}void _photoChooserTask_Completed(object sender, PhotoResult e){if (e.TaskResult == TaskResult.OK){System.Windows.Media.Imaging.BitmapImage bmp = new System.Windows.Media.Imaging.BitmapImage();bmp.SetSource(e.ChosenPhoto);img.Source = bmp;}}} }
?
9、CameraCaptureTask 的 Demo
CameraCaptureTask.xaml.cs
/** CameraCaptureTask - 相機拍照* Completed - 拍照并確認之后所執行的事件* Show() - 啟動相機* * TaskResult - 任務結果* OK - 成功* Cancel - 取消* None - 失敗* * PhotoResult - Completed 事件的事件參數* ChosenPhoto - 照片數據(System.IO.Stream 類型)* OriginalFileName - 照片的文件名*/using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using Microsoft.Phone.Controls;using Microsoft.Phone.Tasks;namespace Demo.Choosers {public partial class CameraCaptureTaskDemo : PhoneApplicationPage{private CameraCaptureTask _cameraCaptureTask;public CameraCaptureTaskDemo(){InitializeComponent();}private void btnDemo_Click(object sender, RoutedEventArgs e){_cameraCaptureTask = new CameraCaptureTask();_cameraCaptureTask.Completed += new EventHandler<PhotoResult>(_cameraCaptureTask_Completed);try{_cameraCaptureTask.Show();}catch (System.InvalidOperationException ex){MessageBox.Show(ex.ToString());}}void _cameraCaptureTask_Completed(object sender, PhotoResult e){if (e.TaskResult == TaskResult.OK){System.Windows.Media.Imaging.BitmapImage bmp = new System.Windows.Media.Imaging.BitmapImage();bmp.SetSource(e.ChosenPhoto);img.Source = bmp;}}} }
?
10、GameInviteTask 的 Demo
GameInviteTask.xaml.cs
/** GameInviteTask - 游戲邀請(邀請其他人加入我的游戲會話)* Completed - 完成操作之后所執行的事件* SessionId - 游戲的會話 ID* Show() - 發出邀請* * TaskResult - 用戶選擇后的結果* OK - 成功* Cancel - 取消* None - 失敗*/using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using Microsoft.Phone.Controls;using Microsoft.Phone.Tasks;namespace Demo.Choosers {public partial class GameInviteTaskDemo : PhoneApplicationPage{private GameInviteTask _gameInviteTask;public GameInviteTaskDemo(){InitializeComponent();}private void btnDemo_Click(object sender, RoutedEventArgs e){_gameInviteTask = new GameInviteTask();_gameInviteTask.Completed += new EventHandler<TaskEventArgs>(_gameInviteTask_Completed);try{// 游戲需要在 Windows Phone 上的 Xbox LIVE 中發布,并且邀請人也要是 Xbox LIVE 的會員_gameInviteTask.SessionId = "游戲的 session id";_gameInviteTask.Show();}catch (System.InvalidOperationException ex){MessageBox.Show(ex.ToString());}}void _gameInviteTask_Completed(object sender, TaskEventArgs e){switch (e.TaskResult){case TaskResult.OK:MessageBox.Show("游戲邀請已發送");break;case TaskResult.Cancel:MessageBox.Show("游戲邀請已取消");break;case TaskResult.None:MessageBox.Show("游戲邀請無法發送");break;}}} }
OK
[源碼下載]