在WindowsStoreApps中访问SecondTime的'FileOpenPicker'时出现异常

时间:2013-12-20 14:22:21

标签: c# .net windows-store-apps windows-store

我想一个接一个地打开FileOpenPicker两次。在第一次从FileOpenPicker中选择图像后,它返回到包含所选图像的页面,当时显示MessageDialog,然后单击OK按钮MessageDialog我再次打开FileOpenPicker,这次我在

上遇到了一个奇怪的崩溃
open.FileTypeFilter.Clear();

as'访问被拒绝。 (HRESULT异常:0x80070005(E_ACCESSDENIED))'。我的代码如下。

 private async void PickImage()
    {
        FileOpenPicker open = new FileOpenPicker();
        open.SuggestedStartLocation = PickerLocationId.PicturesLibrary;

            open.ViewMode = PickerViewMode.Thumbnail;

            // Filter to include a sample subset of file types
             open.FileTypeFilter.Clear();
             open.FileTypeFilter.Add(".bmp");
             open.FileTypeFilter.Add(".png");
             open.FileTypeFilter.Add(".jpeg");
             open.FileTypeFilter.Add(".jpg");

            StorageFile file = await open.PickSingleFileAsync();

            if (file != null)
            {
                if (prop1.Source == null)
                {                                         
                    Dialogpopup();
                    return;
                }
                else if (prop2.Source == null)
                {                      
                    Dialogpopup();
                    return;
                }                   
            }
        }

 private async void Dialogpopup()
    {
        MessageDialog msgDialog = new MessageDialog("Would you like to add additional photos?");
        UICommand okBtn = new UICommand("Yes");
        okBtn.Invoked = OkBtnClick;
        msgDialog.Commands.Add(okBtn);

        UICommand cancelBtn = new UICommand("No");
        cancelBtn.Invoked = CancelBtnClick;
        msgDialog.Commands.Add(cancelBtn);

        //Show message
        msgDialog.ShowAsync();
    }

 private async void OkBtnClick(IUICommand command)
    {                       
            img_PointerPressed(img_galary, null);           
    }

 private void img_PointerPressed(object sender, PointerRoutedEventArgs e)
    {          
       if (sender == img_galary)
        {
           PickImage();
        }
      }

0 个答案:

没有答案