我有一個定義用戶控件MPhotoControl的Windows Mobile(Compact Framework 2)應用程序。 MPhotoControl顯示默認圖像,當用戶單擊此圖像時,將打開一個CameraCaptureDialog
以允許拍攝照片。一旦被捕獲,照片就會顯示在用戶控件中。這適用於捕捉單張照片,然後返回到應用程序。用`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
。那麼,有沒有人知道爲什麼這種解決方法不起作用,並且如果可以在上次捕獲的圖像保存後立即重新打開對話框?
我用CameraCaptureDialog甚至WM開發已經很長時間了。如果你交換使用和foreach會發生什麼? –
嗨喬希。我最初確實有一個CameraCaptureDialog,它被定義爲一個靜態成員,而不是在循環中創建一個新的CameraCaptureDialog,但是這也在第二次調用ShowDialog方法時返回了DialogResult.Cancel。 – BruceHill
這引發了一些舊的記憶......是否有初始化方法? –