0

ユーザーコントロールMPhotoControlを定義するWindowsMo​​bile(Compact Framework 2)アプリケーションがあります。MPhotoControlはデフォルトの画像を表示し、ユーザーがこの画像をクリックすると、aCameraCaptureDialogが開いて写真をキャプチャできるようになります。キャプチャされると、写真はユーザーコントロールに表示されます。これは、1枚の写真をキャプチャしてからアプリケーションに戻る場合に問題なく機能します。

問題は、特定のフォームにこれらのコントロールが多数ある場合、ユーザーがフォーム上のすべての写真コントロールのカメラダイアログを表示し、写真を撮り、保存してダイアログを閉じる必要があるため、ユーザーインターフェイスが非常に使いにくくなることです。ユーザーが求めているのは、を開き、CameraCaptureDialogすべての写真コントロールに画像が表示されるまでダイアログを閉じずに複数の写真を撮るメカニズムです。

CameraCaptureDialogこれを実装しようとしていますが、一度に複数の写真をキャプチャして保存する方法がわかりません。HTC Touch Diamondにダイアログが表示されたとき、「写真を受け入れる」(矢印アイコン)、「もう一度キャプチャする」(カメラアイコン)、または「キャンセルしてダイアログを閉じる」(ゴミ箱アイコン)。そして、矢印をクリックして受け入れると、常にダイアログボックスが閉じます。

では、一度に複数の画像をキャプチャして保存する方法を知っている人はいCameraCaptureDialogますか?

CameraCaptureDialog次に、回避策として複数回開くことを試みることを考えました。したがって、最初の画像が保存されるとすぐに、ダイアログが再び開かれ、2番目の画像がキャプチャされます。これが回避策の試みを示す私のコードです:

public partial class MPhotoControl : UserControl
{
    public static IEnumerable<MPhotoControl> PhotoControls;

    ...

    private void CaptureMultiplePhotos()
    {
        foreach (MPhotoControl photo in PhotoControls)
        {               
            using (CameraCaptureDialog cameraDialog = new CameraCaptureDialog())
            {
                if (cameraDialog.ShowDialog() != DialogResult.OK)
                {
                    break;
                }
                photo.CapturePhoto(cameraDialog.FileName);
            }
        }
    }
}

これに伴う問題は、CameraCaptureDialogまだ1回しか開かず、その後のShowDialogメソッドの呼び出しは単にを返すことDialogResult.Cancelです。それで、この回避策が機能しない理由と、前にキャプチャした画像が保存されたらすぐにダイアログを再び開くことができるかどうかを誰かが知っていますか?

4

1 に答える 1

1

こちらをご覧ください:http ://www.hjgode.de/wp/2012/10/17/windows-mobile-cameracapturedialog-alternative/

ここにコードやバイナリを添付できないので、新しいブログ投稿を行いました。

コードはカメラアプリを起動し、その終了を待ち、新しい写真のリストを表示します。

コードはまだ完璧ではありませんが、出発点です。

于 2012-10-17T12:26:07.017 に答える