2012-02-15 7 views
0

私はC#とWPFを使用しています。私がイメージソースに、実行時にPNGやJPGを追加したいが、私は言う例外を取得:runtımeでPNGとJPGを追加するには

Can not implicitly add convert type string to Sytem.Windows.Media.imageSource

using System.IO;      //for : input - output 
using Microsoft.Win32;    //For : OpenFileDialog/SaveFileDialog 
using System.Windows.Media.Imaging; //For : BitmapImage etc etc 




<Image x:Name="img" Margin="9,13.5,6,0.5" Source="Laugh.ico"> 


private void ac(object sender, RoutedEventArgs args) 
    {  
    OpenFileDialog dlg = new OpenFileDialog(); 
    // Configure open file dialog box 
    dlg.FileName = "Document"; // Default file name 
    dlg.DefaultExt = ".PNG"; // Default file extension 
    dlg.Filter = " (.PNG)|*.PNG"; // Filter files by extension 

    // Show open file dialog box 
    Nullable<bool> result = dlg.ShowDialog(); 

    // Process open file dialog box results 
    if (result == true) 
    { 
    // Open document 
    string filename = dlg.FileName; 
    img.Source=filename; 
    } 

    } 

答えて

3

申し訳ありませんがしかし、あなたは気づいているかもしれないとして、そのコードは文句を言わないでもコンパイルします。イメージソースをファイル名に設定することはできません

img.Source = filename 

referenceをご覧ください。

このお試しください:

のようなものでなければなりません
img.Source=filename 

:あなたが実際に画像ファイルを読み込む必要が通り

BitmapImage bi= new BitmapImage(); 
bi.BeginInit(); 
bi.UriSource = new Uri(filename, UriKind.Relative); 
bi.EndInit(); 
img.Source = bi; 

私はキーの行があると思い

img.Source = new BitmapImage(new Uri(filename)); 
+0

この作品偉大ThxをZortkun Thxをそんなに;) –

0

をディスクから。

+0

IMG = Image.FromFile(ファイル名); 'System.Windows.Controls.Image'に 'FromFile'の定義が含まれていません –

+0

自分自身を修正しました - ごめんなさい – BeRecursive

0

ない、これはプログラムの外側で画像のために働くかどうかわからが、あなたが試すことができます:

Uri uri = new Uri(dlg.File.FullName, UriKind.RelativeOrAbsolute); 
ImageSource imgSource = new BitmapImage(uri); 
img.Source = imgSource; 
関連する問題