原文:与众不同 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(选择器)的更多相关文章

  1. 与众不同 windows phone 8.0 & 8.1 系列文章索引

    [源码下载] [与众不同 windows phone 7.5 (sdk 7.1) 系列文章索引] 与众不同 windows phone 8.0 & 8.1 系列文章索引 作者:webabcd ...

  2. 与众不同 windows phone (34) - 8.0 新的控件: LongListSelector

    [源码下载] 与众不同 windows phone (34) - 8.0 新的控件: LongListSelector 作者:webabcd 介绍与众不同 windows phone 8.0 之 新的 ...

  3. 与众不同 windows phone (35) - 8.0 新的启动器: ShareMediaTask, SaveAppointmentTask, MapsTask, MapsDirectionsTask, MapDownloaderTask

    [源码下载] 与众不同 windows phone (35) - 8.0 新的启动器: ShareMediaTask, SaveAppointmentTask, MapsTask, MapsDirec ...

  4. 与众不同 windows phone (36) - 8.0 新的瓷贴: FlipTile, CycleTile, IconicTile

    [源码下载] 与众不同 windows phone (36) - 8.0 新的瓷贴: FlipTile, CycleTile, IconicTile 作者:webabcd 介绍与众不同 windows ...

  5. 与众不同 windows phone (37) - 8.0 文件系统: StorageFolder, StorageFile, 通过 Uri 引用文件, 获取 SD 卡中的文件

    [源码下载] 与众不同 windows phone (37) - 8.0 文件系统: StorageFolder, StorageFile, 通过 Uri 引用文件, 获取 SD 卡中的文件 作者:w ...

  6. 与众不同 windows phone (38) - 8.0 关联启动: 使用外部程序打开一个文件或URI, 关联指定的文件类型或协议

    [源码下载] 与众不同 windows phone (38) - 8.0 关联启动: 使用外部程序打开一个文件或URI, 关联指定的文件类型或协议 作者:webabcd 介绍与众不同 windows ...

  7. 与众不同 windows phone (39) - 8.0 联系人和日历

    [源码下载] 与众不同 windows phone (39) - 8.0 联系人和日历 作者:webabcd 介绍与众不同 windows phone 8.0 之 联系人和日历 自定义联系人存储的增删 ...

  8. 与众不同 windows phone (40) - 8.0 媒体: 音乐中心的新增功能, 图片中心的新增功能, 后台音乐播放的新增功能

    [源码下载] 与众不同 windows phone (40) - 8.0 媒体: 音乐中心的新增功能, 图片中心的新增功能, 后台音乐播放的新增功能 作者:webabcd 介绍与众不同 windows ...

  9. 与众不同 windows phone (41) - 8.0 相机和照片: 通过 AudioVideoCaptureDevice 捕获视频和音频

    [源码下载] 与众不同 windows phone (41) - 8.0 相机和照片: 通过 AudioVideoCaptureDevice 捕获视频和音频 作者:webabcd 介绍与众不同 win ...

随机推荐

  1. sass玩转颜色总结笔记

    变量: $color:#f00; 1.变浅和加深颜色,sass使用HSL标准来变浅或加深颜色 lighten($color,10%); darken($color,30%);             ...

  2. 第五章:输入输出(IO)管理

     I/O设备概念: 指计算机内部除中央处理器和内存之外的全部设备,通常也称为外部设备.  I/O设备分类:   ·按交互对象分类: ·人机交互设备 ·与计算机或其它电子设备交互的设备 ·计算机间的同信 ...

  3. iframe,window,滚动栏的一些问题

    1.Iframe不显示边框:frameborder=0 2.Iframe不显示横向滚动栏:在iframe所指向的页面增加: <style> html{overflow-x:hidden;} ...

  4. Http的操作(不传递参数)

    ttpResponse  httpResponse = null;       HttpEntity  httpEntity = null; HttpGet httpGet = new HttpGet ...

  5. Sqrt(x) 牛顿迭代法

    为了实现sqrt(x),可以将问题看成是求解\(x^2-y=0\) ,即sqrt(y)=x: 牛顿法是求解方程的近似方法,给定初始点\((x0,f(x0))\),迭代公式为: #include < ...

  6. [转]PostgreSQL事务处理机制

    原文链接:http://blog.chinaunix.net/uid-20726500-id-4040024.html 事务的实现原理可以解读为DBMS采取何种技术确保事务的ACID特性.Postgr ...

  7. cocos2d-x游戏开发系列教程-坦克大战游戏之子弹和地图碰撞

    上篇文章实现了坦克与地图碰撞的检测, 这篇我们继续完成子弹和地图的碰撞检测. 1.先设计一个子弹类Bullet,如下所示: class Bullet : public CCSprite { publi ...

  8. 一步一步重写 CodeIgniter 框架 -- 原因和思路

    CodeIgniter 是一个非常轻量级的 PHP 框架,说是轻量级,最新版的代码只有不到2M. 其最重要的特点就是 MVC 模式来编写代码,如果大家看过一些用 PHP 来编写网站的书籍或教程,无一例 ...

  9. Codeforces Beta Round #10 B. Cinema Cashier (树状数组)

    题目大意: n波人去k*k的电影院看电影. 要尽量往中间坐,往前坐. 直接枚举,贪心,能坐就坐,坐在离中心近期的地方. #include <cstdio> #include <ios ...

  10. mac下和windows下清空DNS缓存

    在WIN下: > ipconfig /flushdns 在mac下: 对于低版本系统,在命令行窗口(terminal)输入 lookupd -flushcache 即可: $ sudo look ...