2016-09-24 41 views
-1

我正在製作一個程序,它將僅上傳位圖。如果用戶試圖上傳任何其他擴展名,它應該彈出錯誤消息。在c#中上傳圖像並在wpf中顯示消息框

OpenFileDialog op = new OpenFileDialog(); 
op.Title = "Open Image"; 
op.Filter = "bmp files (*.bmp)|*.bmp"; 
if (op.ShowDialog() == true) 
{ 
    image.Source = new BitmapImage(new Uri(op.FileName)); 
} 
if (op.ShowDialog() !== FilterEventArgs) 
{ 
    MessageBox.Show (your path doesn't bmp); 
} 

我該如何糾正這段代碼,以及在if語句中顯示messagebox的正確參數是什麼?

+0

你的問題是相當不明確,甚至使一些猜測它看起來像有一個與此代碼片段中的多個問題。例如,它在檢查類型之前將文件加載到內存中。我認爲你需要退後一步,查看OpenFileDialog的MSDN參考。 – Daz

回答

0
Image image = new Image(); 
     OpenFileDialog op = new OpenFileDialog(); 
     op.Title = "Open Image"; 
     op.Filter = "bmp files (*.bmp)|*.bmp"; 

     bool bNotBmp = true; 
     while (op.ShowDialog() == true && bNotBmp == true) 
     { 
      FileInfo FileInf = new FileInfo(op.FileName); 
      string ImgExtension = FileInf.Extension; 
      if (FileInf.Extension.ToString().ToLower() != ".bmp") 
      { 
       MessageBox.Show("Please upload only bmp file"); 
      } 
      else 
      { 
       bNotBmp = false; 
      } 

     } 

     MessageBox.Show("Write image or operation cancelled."); 
+0

你的代碼只允許.bmp選擇,如果用戶輸入任何其他格式文件,你可以這樣處理。 –

0
OpenFileDialog op = new OpenFileDialog(); 
op.Title = "Open Image"; 
op.Filter = "bmp files (*.bmp)|*.bmp"; 

var result = op.ShowDialog(); 
if (result == DialogResult.OK) 
{ 
    if(System.IO.Path.GetExtension(op.FileName).ToLower() == ".bmp"){ 
     image.Source = new BitmapImage(new Uri(op.FileName)); 
    } 
    else{ 
     MessageBox.Show ("The file must have a .bmp extension"); 
    } 
}