我有一个Windows Mobile(Compact framework 2)应用程序,它定义了一个用户控件MPhotoControl。 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
。那么,有没有人知道为什么这个解决方法不起作用,并且如果可以在保存上一个捕获的图像后立即重新打开对话框?
答案 0 :(得分:1)
请看这里:http://www.hjgode.de/wp/2012/10/17/windows-mobile-cameracapturedialog-alternative/
我无法在此处附加任何代码或二进制文件,因此我发布了一篇新的博文。
代码启动相机应用程序,等待其关闭并向您显示新照片列表。
代码尚不完美,但却是一个起点。