Question

I'm working on a wp8-app that takes a photo and then takes you to the next screen to decide whether you like it or not. The current approach was this:

private void ShutterButton_Click(object sender, RoutedEventArgs e)
{
    if (cam != null)
    {
        try
        {
            cam.CaptureImage();

            await Task.Delay(1500);
            NavigateFront();
        }
        catch (Exception ex)
        {
            ...
        }
    }
}

public void NavigateFront()
{
    string naviString = "/confirmPicture.xaml?parameter=" + fileName.ToString();   
    _rootFrame.Navigate(new Uri(naviString, UriKind.Relative));
}

On my Lumia 520 it crashed sometimes. If I increase the wait-time to 2,5sec it works. But of course this should not be the way to do it.

If I catch the void cam_CaptureImageAvailable(object sender, Microsoft.Devices.ContentReadyEventArgs e)-Event and try to navigate after everything is done and all streams are closed I still get in a NavigateFailed-State and the app crashes.

My question is: is there any other useful event that ensures that all work is done and I can navigate without using static time-based values?

Was it helpful?

Solution

Navigation with a PhotoCamera is possible, just subscribe to its CaptureCompleted event handler

cam.CaptureCompleted += new EventHandler<CameraOperationCompletedEventArgs>(camera_CaptureCompleted);

and this would be the event

    void camera_CaptureCompleted(object sender, CameraOperationCompletedEventArgs e)
    {
        try
        {
            Deployment.Current.Dispatcher.BeginInvoke(delegate()
            {
                try
                {
                    cam.Dispose();
                    NavigationService.Navigate(new Uri("URI nething", UriKind.Relative));
                }
                catch (Exception)
                {

                     MessageBox.Show("Problem occured!!");
                }

            });
        }
        catch
        {
            MessageBox.Show("Problem in camer_capturecompleted");
        }
    }

I did it in one of my apps targeting windows phone 7. Check if this works for you as well.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top