我有一个定义用户控件 MPhotoControl 的 Windows Mobile(紧凑框架 2)应用程序。MPhotoControl 显示默认图像,当用户单击此图像时,将CameraCaptureDialog
打开一个以允许捕获照片。捕获后,照片将显示在用户控件中。这适用于捕获单张照片然后返回应用程序。
问题是,当特定表单上有很多这些控件时,用户界面会变得非常不友好,因为用户必须显示相机对话框、拍照、保存和关闭表单上每个照片控件的对话框。用户所要求的是一种打开机制,CameraCaptureDialog
在对话框关闭的情况下拍摄多张照片,直到所有照片控件都有图像。
我正在尝试实现这一点,但我没有看到一种方法来CameraCaptureDialog
一次捕获和保存多张照片。据我所知这是不可能的,因为当我的 HTC Touch Diamond 上显示对话框时,我只有“接受照片”(箭头图标)、“再次拍摄”(相机图标)或“取消并关闭对话框”(垃圾箱图标)。当我单击箭头接受它时,它总是关闭对话框。
那么有没有人知道使用 一次捕获和保存多个图像的方法CameraCaptureDialog
?
然后我想尝试打开CameraCaptureDialog
多次作为解决方法。因此,一旦保存了第一张图像,对话框就会立即再次打开以捕获第二张图像。这是我的代码,显示了我尝试解决方法:
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
仍然只打开一次,随后对该ShowDialog
方法的调用只是返回DialogResult.Cancel
。那么,有谁知道为什么这种解决方法不起作用,以及是否可以在保存先前捕获的图像后立即重新打开对话框?