ユーザーコントロールMPhotoControlを定義するWindowsMobile(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
です。それで、この回避策が機能しない理由と、前にキャプチャした画像が保存されたらすぐにダイアログを再び開くことができるかどうかを誰かが知っていますか?