[英]C# Display JPG Image with WPF doesn't work
對於一個項目,我必須顯示不帶數據綁定的JPG照片,並且不使用XAML文件中的源代碼。 為此,我想使用以下功能:
private void updatephoto(string urlphoto)
{
photo.Source = new BitmapImage(new Uri(String.Format("{0}", urlphoto), UriKind.Relative));
}
因為我的老師在他的例子中使用了它,對他來說,它有效! 我的課程是這樣組成的(摘錄):
class Recette
{
public String photo { get; private set; }
}
使用允許相對路徑使用字符串的構造函數。 使用相對路徑在帶有Source =“ nameoffile.jpg”的XAML文件中可以正常工作,但是當在MainWindows.xaml.cs中時,我想使用以下方式顯示照片:
Recette selectedRecette;
void comboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
selectedRecette = (sender as ComboBox).SelectedItem as Recette;
updatephoto(selectedRecette.photo);
}
最后一行調用:
private void updatephoto(string urlphoto)
{
photo.Source = new BitmapImage(new Uri(String.Format("{0}", urlphoto), UriKind.Relative));
}
在XAML中,圖像為:
< Image Height="100" Name="photo" HorizontalAlignment="Center"/ >
所以我不明白為什么這行不通
您說了一條絕對可行的道路,這太好了! 您的代碼完全按預期工作。
您可以始終使用絕對路徑,該語句:
String path = @"C:\Users\user\Documents\Visual Studio 2013\Projects\projetf - Copie\td6bis\flamby.jpg";
由於有“ @”符號,因此完全有效 。 它說整個字符串是字符串文字 ,因此'\\'字符不會轉義任何內容。
如果您確實需要相對路徑,則該路徑可能不會指向您認為需要的位置。 關鍵是所有相對路徑都相對於可執行文件的工作目錄 。 這通常是可執行文件所在的文件夾,但是在某些地方它會變得很奇怪。
相對路徑快速入門:
如果您的路徑只是一個文件名(即“ test.jpg”),則該文件需要位於執行目錄中。
如果該路徑看起來像普通路徑(即@“ Images \\ test.jpg”),那么它將在包含圖像文件的執行目錄中尋找名為“ Images”的文件夾。
如果您有點,則它在目錄樹中“向上”(即@“ .. \\ Images \\ test.jpg”)。 這將從執行目錄上移至目錄,查找名為“ Images”的文件夾,然后在此處查找圖像文件。
完全隨機的信息; 語句String.Format({0}, "MySTring")
與"MySTring"
具有相同的"MySTring"
。 如果只有一個參數,並且該參數是整個字符串,則沒有理由使用String.Format。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.