2009-08-06 2 views
7

sto cercando di ricreare un semplicissimo esempio di un progetto C# i WPF, è un semplice visualizzatore di immagini .. dal sam insegnare a te stesso C#, è riuscito a aprire la finestra di dialogo del file aperto, ma come ho impostato il percorso dell'immagine per il controllo image.source in WPF?WPF image control source

private void SearchBtn_Click(object sender, RoutedEventArgs e) 
{ 
    Microsoft.Win32.OpenFileDialog openfile = new Microsoft.Win32.OpenFileDialog(); 
    openfile.DefaultExt = "*.jpg"; 
    openfile.Filter = "Image Files|*.jpg"; 
    Nullable<bool> result = openfile.ShowDialog(); 
    if (result == true) 
    { 
     //imagebox.Source = openfile.FileName; 
    } 
} 

risposta

18
imagebox.Source = new BitmapImage(new Uri(openfile.FileName)); 
+0

Grazie, come Doyou impostare il propertie Sizemode.zoom? – Dabiddo

+0

Ha funzionato anche per me !! grazie – Azeem

+0

grazie. Ha funzionato per me –

3

avrete bisogno di cambiare il nome del file in un URI e quindi creare un BitmapImage

:

if (File.Exists(openfile.FileName)) 
{ 
// Create image element to set as icon on the menu element 
BitmapImage bmImage = new BitmapImage(); 
bmImage.BeginInit(); 
bmImage.UriSource = new Uri(openfile.FileName, UriKind.Absolute); 
bmImage.EndInit(); 
// imagebox.Source = bmImage; 
} 
2

è anche possibile aggiungere l'immagine come una risorsa, vale a dire Aggiungi elemento esistente e modifica la proprietà Build Action dell'immagine su Risorsa

quindi fare riferimento in questo modo

BitmapImage bitImg = new BitmapImage(); 
bitImg.BeginInit(); 
bitImg.UriSource = new Uri("./Resource/Images/Bar1.png", UriKind.Relative); 
bitImg.EndInit(); 

((Image)sender).Source = bitImg; 

In questo modo non avete bisogno di includere l'immagine con il programma, i suoi bundle nel pacchetto come una risorsa