0

写真を撮ってから次の画面に移動して、好きかどうかを判断する wp8-app に取り組んでいます。現在のアプローチは次のとおりです。

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));
}

私のLumia 520では時々クラッシュしました。待機時間を 2,5 秒に増やすと、機能します。しかし、もちろん、これはそれを行う方法ではありません。

-Eventをキャッチし、void cam_CaptureImageAvailable(object sender, Microsoft.Devices.ContentReadyEventArgs e)すべてが完了してすべてのストリームが閉じられた後にナビゲートしようとすると、まだNavigateFailed-State になり、アプリがクラッシュします。

私の質問は次のとおりです。すべての作業が完了し、静的な時間ベースの値を使用せずにナビゲートできることを保証する他の便利なイベントはありますか?

4

1 に答える 1

1

PhotoCamera を使用したナビゲーションが可能です。CaptureCompleted イベント ハンドラーをサブスクライブするだけです。

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

そして、これはイベントになります

    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");
        }
    }

Windows Phone 7 を対象とするアプリの 1 つで実行しました。これが機能するかどうかも確認してください。

于 2014-03-12T07:52:29.723 に答える