0

我有一個定義用戶控件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。那麼,有沒有人知道爲什麼這種解決方法不起作用,並且如果可以在上次捕獲的圖像保存後立即重新打開對話框?

+0

我用CameraCaptureDialog甚至WM開發已經很長時間了。如果你交換使用和foreach會發生什麼? –

+0

嗨喬希。我最初確實有一個CameraCaptureDialog,它被定義爲一個靜態成員,而不是在循環中創建一個新的CameraCaptureDialog,但是這也在第二次調用ShowDialog方法時返回了DialogResult.Cancel。 – BruceHill

+0

這引發了一些舊的記憶......是否有初始化方法? –

回答

1

請看這裏:http://www.hjgode.de/wp/2012/10/17/windows-mobile-cameracapturedialog-alternative/

我無法在此附上任何代碼或二進制文件,所以我做了一個新的博客文章。

該代碼啓動相機應用程序,等待其關閉並向您顯示新照片列表。

代碼還不完善,但是一個起點。

+0

謝謝,約瑟夫。我昨天剛剛和我的一位同事談了一些解決方案。這絕對是一個很好的起點......我會看看它。謝謝。 – BruceHill

+0

很高興能有所幫助。親切的問候。 〜約瑟夫 – josef

相關問題