与众不同 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 ...
随机推荐
- 【转】关于C语言生成不重复的随机数
一 说起随机函数,恐怕又有人说这是老生长谈了……一般很多人都形成了自己的固定格式,因为随机数用处比较大,用的时候比较多,拿过来就用了.但是新手不这么 干,他们总是抱有疑惑,我就是一个新手,而且较菜…… ...
- ORACLE列值合併
合併列值最通用的方法就是寫一個自定義函數去實現,這裏介紹的是其它方法. 在SQL Server中合併列值能够使用For Xml Path,在Oracle中則能够使用wm_concat 或 ListAg ...
- java socket线程通信
关于socket线程通信的一些知识整理 一般我们需要要让两台机子进行通信,需要创建一个Server 类,一个Client类,还需要创建一个线程类 server public class Server ...
- hdu 1282回文数猜想
http://acm.hdu.edu.cn/showproblem.php?pid=1282 Problem Description 一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序 ...
- Windows Azure 安全最佳实践 - 第 6 部分:Azure 服务如何扩展应用程序安全性
多种Windows Azure服务可以帮助您将应用程序安全性扩展到云. 有三种服务可提供多个提供程序之间的身份标识映射.内部部署数据中心间的连接和相互发送消息的应用程序功能(无论应用程序位于何处). ...
- Swift - 使用UI Dynamics给UIKit组件添加重力和碰撞行为
UI Dynamics是UIKit的一个新组成部分,它向iOS中的视图提供了与物理学有关的功能和动画.可以让你向视图中引入力和物理属性,可以让你的视图弹跳,舞动,受重力影响等等. 下面通过样例,演示使 ...
- IOS开发之UILabel动态高度设置方法
项目中有这样的需求,要显示一本书的概述,默认显示2行,点击展开按钮,显示全部,点击收回,有显示2行. 开始的时候按钮事件中,可能写的是这样一段代码: if (isExpand) { [lblBrief ...
- anglehack参赛总结
自已不足的方面: 自已和伙伴是带着idea去的,但是没有带有很大的热情激励和吸引在场的hacker加入团队,一定要找最优秀的人加入团队,事实上我是有这方面识人认人的能力的,24h,5-6个人的优秀团队 ...
- Swift - 产生不重复数字的随机数生成器
在Swift中,可以使用函数类型的参数,也可以使用函数类型的返回值.而作为返回值的函数,还能“捕获”外部的值,并多次使用它.这个特性,常可用来创建各种生成器. 下面通过创建一个“随机数生成器函数”作为 ...
- ASP.NET - 缓存(Cache)
页面缓存: 给页面添加<%@ OutPutCache Duration = “15” VaryByParam = “none” %> 这样就可以启用页面缓存了,那么在规定的时间内,页面之访 ...