2013-05-01 48 views
-1

我想從磁盤顯示圖像!爲什麼這行代碼不起作用?

private void Button_Click_3(object sender, RoutedEventArgs e) 
{ 
    myImage.Source = new BitmapImage(
     new Uri("images\\Countries\\dz.png",UriKind.Relative)); 
} 

我敢肯定的是,文件名是正確的,但 當我按下按鈕,圖像不會出現,我還相信,該圖像是在所有其他控件的前面和myImage是其名稱 。

+1

什麼是myImage? – 2013-05-01 17:52:57

+0

您是否嘗試過uri中的絕對路徑,並帶有file://前綴? – flup 2013-05-01 17:52:58

+0

myImage是一個圖像控件 – 2013-05-01 17:53:24

回答

1

試試這個:

private void Button_Click_3(object sender, RoutedEventArgs e) 
{ 
    try 
    { 
     myImage.Source = new BitmapImage(
     new Uri(@"images\Countries\dz.png",UriKind.Relative)); 
    } 

    catch(Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 
} 
  1. 把@使得它一個字符串(你不需要提供那麼 轉義序列)

  2. 如果上面也不起作用那麼如果有任何 發生,它將顯示異常。

+2

將'@'設爲文字串,而不是路徑。 – 2013-05-01 18:04:26

+1

對不起,它是一個字符串,但你不需要提供轉義字符,然後 – 2013-05-01 18:05:15

+1

沒有圖像顯示,也沒有拋出任何異常 – 2013-05-01 18:46:57

0

嘗試調試它。 在行(F9)上放置一個斷點並按F5開始調試。執行該行後檢查myImage.Source的值(F10至步驟)。 您也可以使用立即窗口在調試暫停時測試其他語句並查看結果。

同時確保圖像文件夾是在同一文件夾中的可執行文件(在調試或發佈文件夾,根據您的構建)

0
BitmapImage bitImg = new BitmapImage(); 
bitImg.BeginInit(); 
bitImg.UriSource = new Uri("images\\Countries\\dz.png", UriKind.Relative); 
bitImg.EndInit(); 

myImage.Source = bitImg; 
+1

你需要使用@或雙斜槓:新的Uri(@「images ... – Jerry 2013-05-01 19:27:50

0

幾件事情,可以幫助你:

相反的:

myImage.Source = new BitmapImage(new Uri("images\\Countries\\dz.png",UriKind.Relative)); 

試試這個:

BitmapImage ImageName = new BitmapImage; 
ImageName.BeginInit(); 
ImageName.UriSource = new Uri(@"images\Countries\dz.png",UriKind.Relative); 
ImageName.EndInit(); 
myImage.Source = ImageName; 

有關更多信息,請參見下面的鏈接(頁面底部的示例部分)。

http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.bitmapimage.aspx

如果以上不工作,我們需要您張貼更多的代碼:)。此外,如果您明確指定您要在此處實現的目標,這將有所幫助。

相關問題