0

我有一个定义用户控件 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。那么,有谁知道为什么这种解决方法不起作用,以及是否可以在保存先前捕获的图像后立即重新打开对话框?

4

1 回答 1

1

请看这里:http ://www.hjgode.de/wp/2012/10/17/windows-mobile-cameracapturedialog-alternative/

我无法在此处附加任何代码或二进制文件,因此我写了一篇新的博客文章。

该代码启动相机应用程序,等待其关闭并向您显示新照片列表。

代码还不完美,只是一个起点。

于 2012-10-17T12:26:07.017 回答