Mango e.ChosenPhoto поднимает аргументNullException - PullRequest
1 голос
/ 25 января 2012

У меня есть приложение только с одной кнопкой.Когда пользователь нажимает кнопку, запускается программа выбора фотографий.

Вот мой код

PhotoChooserTask photoChooserTask;
BitmapImage image;

Page_Launch event
{
      this.photoChooserTask = new PhotoChooserTask();
      this.photoChooserTask.ShowCamera = true;
      this.photoChooserTask.PixelHeight = 100;
      this.photoChooserTask.PixelWidth = 100;
      this.photoChooserTask.Completed += new EventHandler<PhotoResult>(photoChooserTask_Completed);
}

button_click event
{
    this.photoChooserTask.Show();
}

private void photoChooserTask_Completed(object sender, PhotoResult e)
{
    this.image = new BitmapImage();
    this.image.SetSource(e.ChosenPhoto);
}

Все хорошо, когда я начинаю отлаживать в эмуляторе WP.Я могу выбрать фотографию из библиотеки фотографий или сделать снимок, обрезать и сохранить фотографию.Но когда я запускаю отладку на своем устройстве WP, я всегда получаю ошибку e.ChosenPhoto ArgumentNullException после нажатия кнопки.

У кого-нибудь возникла такая же проблема?

1 Ответ

2 голосов
/ 25 января 2012

Вы пишете этот код в событии запуска приложения ??

Вы пробовали, добавив фотоостановку на страницу.

попробуйте вставить это в файл MyPage.xaml.cs

 public partial class MainPage : PhoneApplicationPage
    {
        PhotoChooserTask photoChooserTask;
        BitmapImage image;

        // Constructor
        public MainPage()
        {
            InitializeComponent();
            this.photoChooserTask = new PhotoChooserTask();
            this.photoChooserTask.ShowCamera = true;
            this.photoChooserTask.PixelHeight = 100;
            this.photoChooserTask.PixelWidth = 100;
            this.photoChooserTask.Completed += new EventHandler<PhotoResult>(photoChooserTask_Completed);
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            this.photoChooserTask.Show();
        }

        private void photoChooserTask_Completed(object sender, PhotoResult e)
        {
           if (e.TaskResult == TaskResult.OK && e.ChosenPhoto != null)
            {
                this.image = new BitmapImage();
                this.image.SetSource(e.ChosenPhoto);
            }
        }
    }
...