簡體   English   中英

PhotoChooserTask拋出未處理的異常

[英]Unhandled exception thrown by PhotoChooserTask

我已經有了這段代碼,並且正在使用它來顯示一個按鈕,該按鈕允許用戶從他的庫中選擇圖像並將其用作我的應用程序的背景。

因此,我創建了一個PhotoChooserTask ,將其設置為顯示相機並將其綁定到任務完成時必須執行的方法。 該按鈕將通過顯示PhotoChooserTask來啟動任務。 完成該操作很容易,我只需要設置一個布爾值並更新圖像源即可。

PhotoChooserTask pct_edit = new PhotoChooserTask();
pct_edit.ShowCamera = true;
pct_edit.Completed += pct_edit_Completed;
Button changeImageButton = new Button { Content = "Change Image" };
changeImageButton.Tap += (s, e) =>
{
    pct_edit.Show();
};


void pct_edit_Completed(object sender, PhotoResult e)
    {
        if (e.TaskResult == TaskResult.OK)
        {
            bi.SetSource(e.ChosenPhoto);
            IsRebuildNeeded = true;
        }
    }

問題是它不會顯示PhotoChooserTask但會給我一個例外,將我帶到

private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
    {
        if (Debugger.IsAttached)
        {
            Debugger.Break();
        }
    }

App.xaml.cs

這看起來很奇怪,因為我在同一個類中有另一個PhotoChooserTask ,並且這個工作正常。

它出什么問題了?

VisualStudio甚至不會告訴我有什么例外,因此沒有辦法解決!

編輯:

我剛剛發現我打電話時拋出了異常

pct_edit.Show(); 

在按鈕的點擊事件中。

您應該將選擇器定義為班級中的一個字段。 您必須具有PhotoChooser的頁面范圍。 然后,您可以在構造函數中訂閱它。 這是在MSDN上聲明的

class SomeClass
{
   readonly PhotoChooserTask pct_edit = new PhotoChooserTask();

   SomeClass()
   {
       pct_edit.ShowCamera = true;
       pct_edit .Completed += new EventHandler<PhotoResult>(pct_edit_Completed);
   }
}

您可以使用try檢查是什么問題

changeImageButton.Tap += (s, e) =>
{
    try
    {
       PhotoChooserTask pct_edit = new PhotoChooserTask();
       pct_edit.ShowCamera = true;
       pct_edit.Completed += (s,e) =>
       {
           if (e.TaskResult == TaskResult.OK)
           {
              var bi = new BitmapImage() // maybe you didn't initialize bi?
              bi.SetSource(e.ChosenPhoto);
              IsRebuildNeeded = true;
           }
       }
       pct_edit.Show();
    }
    catch (Exception ex)
    {
       Message.Show(ex.Message);
    }
};

Message上放置剎車點,然后您可以檢查ex內的所有內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM