方法: Windows Phone の写真セレクター タスクを使用する

2012/02/09

写真セレクター タスクを使用すれば、ユーザーが電話から既存の写真を選択できるようにすることができます。このタスクは、写真セレクター アプリケーションを起動します。ユーザーがタスクを完了すると、イベントが発生し、イベント ハンドラーが結果で写真を受け取ります。

セレクターを使用して、Windows Phone プラットフォーム全体で一貫したユーザー エクスペリエンスを提供できます。詳細については、「Windows Phone でのランチャーとセレクターの概要」を参照してください。

重要な注重要な注:

写真セレクター タスクを物理デバイス上でテストするには、接続ツールを使用してアプリケーションを起動します。詳細については、「方法: Windows Phone の Connect Tool を使用する」を参照してください。

写真セレクター タスクを使用するには

  1. コードに次のステートメントを追加します。

    using Microsoft.Phone.Tasks;
    
  2. タスク オブジェクトを宣言します。ページのスコープが必要であるため、ページ内のコンストラクターの前で宣言します。

    PhotoChooserTask photoChooserTask;
    
  3. ページのコンストラクターに次のコードを追加します。このコードはタスク オブジェクトを初期化し、ユーザーがタスクを完了した後に実行するメソッドを識別します。

    photoChooserTask = new PhotoChooserTask();
    photoChooserTask.Completed += new EventHandler<PhotoResult>(photoChooserTask_Completed);
    
  4. ボタン クリック イベント内など、必要に応じてアプリケーションに次のコードを追加します。この手順をテストするには、ページのコンストラクターにこのコードを配置します。これはタスクを起動するコードです。

    try
    {
        photoChooserTask.Show();
    }
    catch (System.InvalidOperationException ex)
    {
        MessageBox.Show("An error occurred.");
    }
    
  5. ページに完了イベント ハンドラーのコードを追加します。このコードは、ユーザーがタスクを完了した後に実行されます。結果は、イメージ データを含むストリームを公開する PhotoResult オブジェクトです。写真イメージのストリームを操作する方法については、「Windows Phone のカメラと写真」を参照してください。

    void photoChooserTask_Completed(object sender, PhotoResult e)
    {
        if (e.TaskResult == TaskResult.OK)
        {
            MessageBox.Show(e.ChosenPhoto.Length.ToString());
    
            //Code to display the photo on the page in an image control named myImage.
            //System.Windows.Media.Imaging.BitmapImage bmp = new System.Windows.Media.Imaging.BitmapImage();
            //bmp.SetSource(e.ChosenPhoto);
            //myImage.Source = bmp;
        }
    }
    

表示: