PhotoChooserTask引发未处理的异常
本文关键字:异常 未处理 PhotoChooserTask | 更新日期: 2023-09-27 18:26:41
我有这段代码,我用它来显示一个按钮,用户可以从他的库中选择一个图像,并将其用作我的应用程序的背景。
因此,我创建了一个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();
}
}
在CCD_ 4中。
这看起来很奇怪,因为我在同一个班里有另一个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
里面的一切。