与众不同 windows phone (5) - Chooser(选择器)
原文:与众不同 windows phone (5) - Chooser(选择器)
作者: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 = ""; _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 = ""; _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
[源码下载]
与众不同 windows phone (5) - Chooser(选择器)的更多相关文章
- 与众不同 windows phone 8.0 & 8.1 系列文章索引
[源码下载] [与众不同 windows phone 7.5 (sdk 7.1) 系列文章索引] 与众不同 windows phone 8.0 & 8.1 系列文章索引 作者:webabcd ...
- 与众不同 windows phone (34) - 8.0 新的控件: LongListSelector
[源码下载] 与众不同 windows phone (34) - 8.0 新的控件: LongListSelector 作者:webabcd 介绍与众不同 windows phone 8.0 之 新的 ...
- 与众不同 windows phone (35) - 8.0 新的启动器: ShareMediaTask, SaveAppointmentTask, MapsTask, MapsDirectionsTask, MapDownloaderTask
[源码下载] 与众不同 windows phone (35) - 8.0 新的启动器: ShareMediaTask, SaveAppointmentTask, MapsTask, MapsDirec ...
- 与众不同 windows phone (36) - 8.0 新的瓷贴: FlipTile, CycleTile, IconicTile
[源码下载] 与众不同 windows phone (36) - 8.0 新的瓷贴: FlipTile, CycleTile, IconicTile 作者:webabcd 介绍与众不同 windows ...
- 与众不同 windows phone (37) - 8.0 文件系统: StorageFolder, StorageFile, 通过 Uri 引用文件, 获取 SD 卡中的文件
[源码下载] 与众不同 windows phone (37) - 8.0 文件系统: StorageFolder, StorageFile, 通过 Uri 引用文件, 获取 SD 卡中的文件 作者:w ...
- 与众不同 windows phone (38) - 8.0 关联启动: 使用外部程序打开一个文件或URI, 关联指定的文件类型或协议
[源码下载] 与众不同 windows phone (38) - 8.0 关联启动: 使用外部程序打开一个文件或URI, 关联指定的文件类型或协议 作者:webabcd 介绍与众不同 windows ...
- 与众不同 windows phone (39) - 8.0 联系人和日历
[源码下载] 与众不同 windows phone (39) - 8.0 联系人和日历 作者:webabcd 介绍与众不同 windows phone 8.0 之 联系人和日历 自定义联系人存储的增删 ...
- 与众不同 windows phone (40) - 8.0 媒体: 音乐中心的新增功能, 图片中心的新增功能, 后台音乐播放的新增功能
[源码下载] 与众不同 windows phone (40) - 8.0 媒体: 音乐中心的新增功能, 图片中心的新增功能, 后台音乐播放的新增功能 作者:webabcd 介绍与众不同 windows ...
- 与众不同 windows phone (41) - 8.0 相机和照片: 通过 AudioVideoCaptureDevice 捕获视频和音频
[源码下载] 与众不同 windows phone (41) - 8.0 相机和照片: 通过 AudioVideoCaptureDevice 捕获视频和音频 作者:webabcd 介绍与众不同 win ...
随机推荐
- 180China丨the Agency for Brand Engagement and Experience
180China丨the Agency for Brand Engagement and Experience Welcome to 180. Welcome to Creativity. Thank ...
- ios创建画笔的样例(双笔画效果)
定义一个UIView:主要是在这个View里面加一个UIImageView,绘图都在这个UIImageView里面进行 @property(nonatomic) CGPoint prePoint; / ...
- Linux高性能server编程——高级I/O函数
高级I/O函数 pipe函数 pipe函数用于创建一个管道,实现进程间的通信. #include <unistd.h> int pipe(int pipefd[2]); 通过pipe ...
- Android灭亡论之Firefox OS操作系统出现
今天是2014年7月1日,过几天就要到深圳实训去了,实训核心内容是Android开发.尽管Android现在很火,但作为程序猿的我们必须时刻保持清醒的头脑.我虽不是什么预言家,但近期接触的Androi ...
- Unity3d 网络编程(二)(Unity3d内建网络各项參数介绍)
这里是全部Unity3d在网络中能用到相关的类及方法.纵观參数功能, Unity3d来写一个手游是不二的选择: RPC 能够传递的參数 int float string NetworkPlayer N ...
- InputStream中read()与read(byte[] b)
原文:InputStream中read()与read(byte[] b) read()与read(byte[] b)这两个方法在抽象类InputStream中前者是作为抽象方法存在的,后者不是,JDK ...
- AES加密时抛出java.security.InvalidKeyException: Illegal key size or def
原文:AES加密时抛出java.security.InvalidKeyException: Illegal key size or def 使用AES加密时,当密钥大于128时,代码会抛出 java. ...
- 基于visual Studio2013解决C语言竞赛题之0802图书信息查询
题目 解决代码及点评 /* 功能:有一批图书,每本书有:书名(name),作者(author) , 编号(num),出版日期(date)四个数据, 希望输入后按书名的字母顺序将各书的记录排列好, ...
- Boost学习之可移植路径操作--filesystem
Boost.Filesystem 库为对路径.文件和目录进行查询和操作提供了可移植的工具,已经被C++标准委员会接纳包含到TR2中. 编译 使用Boost.Filesystem 库之前要先编译它,请参 ...
- 新书:《Liferay Portal 6.1最佳实践门户网站建设》
新书:<Liferay Portal 6.1最佳实践门户网站建设> <Liferay Portal 6.1门户站点建设最佳实践>是国内第一本全面介绍Liferay Port ...