Помимо невозможности отправки вложений, существует проблема с тем, как вы используете CameraCaptureTask
.
Поскольку эта задача является средством выбора, вы должны кодировать его, чтобы использовать его для учета могилы.
На практике это означает, что ваш экземпляр CameraCaptureTask
должен быть на уровне класса, а обработчик событий должен быть подписан в конструкторе страниц.
Если вы этого не сделаетеСделайте это, чтобы страница не знала, как обрабатывать информацию, возвращаемую при возврате задания.
Ваш код должен выглядеть примерно так:
public partial class MainPage : PhoneApplicationPage
{
CameraCaptureTask cct = new CameraCaptureTask();
public MainPage()
{
InitializeComponent();
// Any other initialization tasks
cct.Completed += new EventHandler<PhotoResult>(cct_Completed);
}
void cct_Completed(object sender, PhotoResult e)
{
// Do something with `e`
}
// Or some other appropriate event
private void Button_Click(object sender, RoutedEventArgs e)
{
cct.Show();
}
Обратите внимание. Это относится ко всем средствам выбора, но не к средствам запуска.
Обновление:
Причина этого заключается в том, как страница «перетягивается» послеприложение захоронено, чтобы открыть селектор.
При возврате из режима селектора будет создан новый экземпляр страницы.Следовательно, это не будет включать никаких записей о обработчиках событий, подписанных в предыдущих экземплярах.Если к завершенному обработчику не будет прикреплено ничего, ваш код для обработки возвращаемых селектором деталей не будет вызываться.