Variazione fonte immagine in codice dietro - WPF
-
05-10-2019 - |
Domanda
Ho bisogno di impostare sorgente di immagini in modo dinamico, si prega di notare la mia immagine è in qualche parte sulla rete, ecco il mio codice
BitmapImage logo = new BitmapImage();
logo.BeginInit();
logo.UriSource = new Uri(@"pack://application:,,,\\myserver\\folder1\\Customer Data\\sample.png");
logo.EndInit(); // Getting the exception here
ImageViewer1.Source = logo;
Eccezione:
Il prefisso URI non viene riconosciuto
Soluzione
Hai solo bisogno di una sola riga:
ImageViewer1.Source = new BitmapImage(new Uri(@"\myserver\folder1\Customer Data\sample.png"));
Altri suggerimenti
Nessuna delle soluzioni di cui sopra ha funzionato per me. Ma questo ha fatto:
myImage.Source = new BitmapImage(new Uri(@"/Images/foo.png", UriKind.Relative));
La sintassi pacchetto che si sta utilizzando è qui per un'immagine che è contenuto come risorsa all'interno dell'applicazione, non per un file sciolto nel file system.
Si vuole semplicemente passare il percorso effettivo al UriSource:
logo.UriSource = new Uri(@"\\myserver\folder1\Customer Data\sample.png");
Nessuno dei metodi lavorato per me come ho bisogno di tirare l'immagine da una cartella, invece di aggiungerla alla domanda. Il seguente codice ha funzionato:
TestImage.Source = GetImage("/Content/Images/test.png")
private static BitmapImage GetImage(string imageUri)
{
var bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.UriSource = new Uri("pack://siteoforigin:,,,/" + imageUri, UriKind.RelativeOrAbsolute);
bitmapImage.EndInit();
return bitmapImage;
}
Sei tutto sbagliato! Perché? Perché tutto ciò che serve è questo codice di lavoro:
(immagine View) / C # Img è: la tua casella di immagine
Tenetelo così com'è, senza modifiche ( "MS-appx: ///) questo è il codice non è il tuo nome dell'applicazione Immagini è la cartella nel vostro progetto si può cambiare. dog.png è il file nella cartella, così come faccio la mia cartella 'Immagini' e file 'dog.png' Così l'URI è: "ms-appx: ///Images/dog.png" e il mio codice:
private void Button_Click(object sender, RoutedEventArgs e)
{
img.Source = new BitmapImage(new Uri("ms-appx:///Images/dog.png"));
}