エクスポート (0) 印刷
すべて展開
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Windows Phone 8の写真セレクター タスクの使用方法

2014/06/18

対象: Windows Phone 8 および Windows Phone Silverlight 8.1 | Windows Phone OS 7.1

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

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

Windows Phone OS 7.1 アプリを開発している場合、写真セレクター タスクのデバッグは Windows Phone OS 7.1 エミュレーターではサポートされていません。物理デバイスを使用する必要があります。物理 Windows Phone OS 7.1 デバイスで写真セレクター タスクをテストするには、Connect Tool を使用してアプリケーションを起動する必要があります。詳細については、「Windows Phone の写真選択またはカメラ起動とやり取りするアプリのテスト方法」を参照してください。

Windows Phone 8 では、写真セレクター タスクは、Visual Studio を使用してエミュレーターまたは物理デバイスでテストできます。エミュレーターでテストしている場合は、テストを開始する前に、エミュレーターが実行されたらフォト ハブを開く必要があります。これで、選択できるサンプル写真があることを示します。

Windows Phone OS 7.1 Windows Phone OS 7.1: Windows Phone OS 7.1 を対象としているアプリが Windows Phone 8 を実行している電話に展開されていて、そのアプリが写真セレクター タスクを使用する場合は、“PlatformData” と呼ばれるアプリの分離ストレージの最上位レベルにシステムによってディレクトリが作成されます。そのため、アプリが分離ストレージのコンテンツを反復処理し、システムによって作成されたディレクトリをスキップしたい場合は、“PlatformData” および “Shared” をスキップします。

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

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

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

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

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

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

    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;
        }
    }
    

表示:
© 2014 Microsoft