Давайте продолжим наше исследование средств запуска и выбора Windows Phone 7.
Я описал пусковые установки Windows Phone 7 здесь .
Chooser является API, который запустил встроенную функциональность для пользователя , чтобы выполнить какую — то задачу и возвращается обратно данные , которые были выбраны пользователем в приложении.
Мы видели, как мы могли бы сделать новый лаунчер как и где нужно, но в случае с «Выборками» игра немного отличается.
Chooser запускает другое приложение (Ваше приложение становится захороненным ), и после того, как намеченное действие завершено, (Ваше приложение вернулось из могилы!) Результаты возвращаются в ваше приложение. Поэтому нам нужно будет объявить объекты Chooser в глобальной области видимости в классе PhoneApplicationPage, создать его экземпляр в ctor страницы и выполнить необходимые сантехнические операции (под этим я подразумеваю обработку необходимых событий и т. Д.)
На данный момент выставлены следующие
1. CameraCaptureTask :
Задача захвата камеры запускает камеру телефона. Теперь пользователь фактически видит приложение камеры телефона, где он / она может нажимать фотографии. После того, как фотография сделана, мы можем сохранить эту фотографию в медиа-библиотеке телефона. Для этого нам нужно добавить ссылку на сборку XNA.Framework.
using Microsoft.Xna.Framework.Media;
public partial class page2 : PhoneApplicationPage
{
CameraCaptureTask cameraCaptureTask;
// Constructor
public page2()
{
InitializeComponent();
// Initialize the CameraCaptureTask and assign the Completed handler in the page constructor.
cameraCaptureTask = new CameraCaptureTask();
cameraCaptureTask.Completed += new EventHandler<PhotoResult>(cameraCaptureTask_Completed);
}
private void btnCamera_Click(object sender, RoutedEventArgs e)
{
cameraCaptureTask.Show();
}
void objCameraCapture_Completed(object sender, PhotoResult e)
{
if (e.TaskResult == TaskResult.OK)
{
MediaLibrary library = new MediaLibrary();
Random r = new Random(1234);
Picture pic = library.SavePicture("SavedPicture_" + r.Next(11, 99).ToString() + ".jpg", e.ChosenPhoto);
}
}
}
ScreenShots:
2. PhotoChooserTask :
Как подсказывает Имя, селекторы показывают вам библиотеку изображений WP7, из которой вам разрешено выбирать фотографию, в завершенном событии
вы получаете объект PhotoResult, который содержит потоковое представление выбранной фотографии.
Вы можете делать то, что вы хотите с потоком файлов фотографий.
(Например, его отображение, загрузка его поставщику услуг и т. Д. И т. Д.)
public partial class Page2 : PhoneApplicationPage
{
PhotoChooserTask objPhotoChooser;
public Page2()
{
InitializeComponent();
objPhotoChooser = new PhotoChooserTask();
objPhotoChooser.Completed += new EventHandler<PhotoResult>(objPhotoChooser_Completed);
}
private void btnChosePhoto_Click(object sender, RoutedEventArgs e)
{ objPhotoChooser.Show(); }
void objPhotoChooser_Completed(object sender, PhotoResult e)
{
if (e.TaskResult == TaskResult.OK)
MessageBox.Show("Photo Selected");
}
}
ScreenShots:
3. SavePhoneNumberTask :
Этот Chooser, как следует из названия, сохраняет номер телефона в контактах телефона. Этот селектор ничего не возвращает. Событие Completed получает аргумент, указывающий состояние операции.
Примечание. Вам необходимо установить
свойство PhoneNumber перед вызовом метода Showrs (Choosers). (Иначе ваш код может не
</span>
<pre>public partial class Page2 : PhoneApplicationPage
{
SavePhoneNumberTask objSavePhoneNumber;
public Page2()
{
InitializeComponent();
objSavePhoneNumber = new SavePhoneNumberTask();
objSavePhoneNumber.Completed += new EventHandler<TaskEventArgs>(objSavePhoneNumber_Completed);
}
private void btnSavePhoneNumber_Click(object sender, RoutedEventArgs e)
{
objSavePhoneNumber.PhoneNumber = "123-345-4567";
objSavePhoneNumber.Show();
}
void objSavePhoneNumber_Completed(object sender, TaskEventArgs e)
{
if (e.TaskResult == TaskResult.OK)
{
MessageBox.Show("Phone Number Saved..");
}
}
}
4. PhoneNumberChooserTask
PhoneNumberChooserTask Позволяет вам выбрать номер телефона из ваших контактов. Если у контакта несколько телефонных номеров, вы можете выбрать один из телефонных номеров (это не очень удобно)
public partial class Page2 : PhoneApplicationPage
{
PhoneNumberChooserTask objPhoneNumberChooser;
public Page2()
{
InitializeComponent();
objPhoneNumberChooser = new PhoneNumberChooserTask();
objPhoneNumberChooser.Completed += new EventHandler<PhoneNumberResult>(objPhoneNumberChooser_Completed);
}
private void btnChoosePhoneNumber_Click(object sender, RoutedEventArgs e)
{
objPhoneNumberChooser.Show();
}
void objPhoneNumberChooser_Completed(object sender, PhoneNumberResult e)
{
if (e.TaskResult == TaskResult.OK)
{
MessageBox.Show("Selected :" + e.PhoneNumber);
}
}
}
5. SaveEmailAddressTask
Как следует из названия, этот выбор сохраняет электронную почту в список контактов.
6. EmailAddressChooserTask
Как следует из названия, этот селектор показывает вам список контактов, откуда вы можете выбрать контакт, и ваше приложение получит адрес электронной почты выбранного контакта по умолчанию. Опять же, если доступно несколько адресов электронной почты, пользователю предоставляется возможность выбора адреса электронной почты. Это отправлено обратно в ваше приложение.
Исходный код для примера Launcher и Chooser Demo (скриншоты которого видны выше)
Еще раз, спасибо за вашу поддержку, прочитав этот пост. Продолжайте наблюдать это место для больше на Windows Phone 7.
Следующее сообщение: Создание вашего клиента Twitter для Windows Phone 7 с oAuth 
Источник: http://sudheerkovalam.wordpress.com/2010/08/14/windows-phone-7-launcher-and-choosers-part-2/









