1

次を使用してファイルを選択しようとしています:

private async void Button_Click_1(object sender, RoutedEventArgs e)
{
    try
    {
            FileOpenPicker openPicker = new FileOpenPicker();
            openPicker.ViewMode = PickerViewMode.Thumbnail;
            openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
            openPicker.FileTypeFilter.Add(".jpg");
            openPicker.FileTypeFilter.Add(".jpeg");
            openPicker.FileTypeFilter.Add(".png");

            StorageFile file = await openPicker.PickSingleFileAsync();
            if (file != null)
            {
                // Application now has read/write access to the picked file
                txt.Text = "Picked file: " + file.Name;
            }
            else
            {
                txt.Text = "Operation cancelled.";
            }

    }
    catch (Exception exception)
    {
        txt.Text = exception.Message;
    }
}

...しかし、例外がスローされます: `指定されたメソッドはサポートされていません。";

Windows Phone 8 ドキュメントからコードをコピーして貼り付けました。彼らのサンプルはどれも機能しません。ドキュメント機能/コントラクトなどが欠けているのではないかと思いましたが、電話アプリのVSには存在しません。

なぜこれがうまくいかないのですか?

私はそれを試しの最初の行まで追跡しました:

FileOpenPicker openPicker = new FileOpenPicker(); // this is the line the exception is thrown on.
4

4 に答える 4

5

MSDNフォーラムと、MSの従業員であると私が想定しているものからの回答によると(here):

現在、写真以外のファイルの選択や、他のストア アプリからのファイルの選択はサポートされていません。

そのため、PhotoChooserTask代わりにFileOpenPicker.

于 2013-03-12T16:50:49.783 に答える
5

これは機能しますが、Windows Phone 8.1 (Windows Phone) でのみ機能し、Windows Phone 8.0/8.1 (Windows Phone Silverlight) では機能しません。

コードは次のとおりです。

FileOpenPicker singleFilePicker = new FileOpenPicker();
        singleFilePicker.ViewMode = PickerViewMode.Thumbnail;
        singleFilePicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
        singleFilePicker.FileTypeFilter.Add(".jpg");
        singleFilePicker.FileTypeFilter.Add(".jpeg");
        singleFilePicker.FileTypeFilter.Add(".png");
        singleFilePicker.PickSingleFileAndContinue();

選択した写真を処理するには、次のメソッドを追加します。

public void ContinueFileOpenPicker(FileOpenPickerContinuationEventArgs args)
    {
        if (args.Files.Count > 0)
        {
            var userChosenbPhoto = args.Files[0].Name;
        }
        else
        {
            //user canceled picker
        }
    }

複数のファイルを取得することもできます。

最後になりましたが、最も重要なこととして、プロジェクトに継続マネージャークラスを追加する必要があります。これにより、ピッカーから戻ったときにアプリの再アクティブ化が管理されます。プロジェクトに ContinuationManager を追加する方法については、このドキュメントを参照してください (リンクが多すぎてここに記載するには情報が多すぎます)。

于 2014-06-02T14:32:55.957 に答える
0

ドキュメントによると、次のことが言及されています。

詳細については、このリンクを確認してください http://msdn.microsoft.com/en-us/library/windowsphone/develop/br207852.aspx

于 2014-05-02T10:09:52.690 に答える