c#显示JPG图像与WPF不工作

本文关键字:WPF 工作 图像 显示 JPG | 更新日期: 2023-09-27 18:05:20

对于一个项目,我必须在没有数据绑定的情况下显示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; }
}

的构造函数接受一个String作为相对路径。使用相对路径可以在XAML文件中使用Source=" nameofffile .jpg",但当在我的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"/ >

我不明白为什么这个不行

c#显示JPG图像与WPF不工作

你说绝对路径工作,这是伟大的!您的代码完全按照预期工作。

你可以使用绝对路径,语句:

String path = @"C:'Users'user'Documents'Visual Studio 2013'Projects'projetf - Copie'td6bis'flamby.jpg";

是完全有效的,因为有"@"符号。它表示整个字符串是字符串字面值,因此'''字符不会转义任何内容。

如果你真的需要相对路径,很可能路径并没有指向你认为的地方。关键是所有相对路径都是相对于可执行文件的工作目录的。这通常是可执行文件所在的文件夹,但有些地方会变得很奇怪。

相对路径快速入门:

  1. 如果你的路径只是一个文件名(例如。

  2. 如果路径看起来像正常路径(例如。@"Images'test.jpg"),那么它将在包含图像文件的执行目录中寻找一个名为"Images"的文件夹。

  3. 如果你有点,那么它"向上"的目录树(即。@". . ' ' test.jpg图片")。这将从执行目录上升到一个目录,查找名为"Images"的文件夹,并在其中查找图像文件。

完全随机信息;表述String.Format({0}, "MySTring")"MySTring"做同样的事情。String没有存在的理由。

如果只有一个参数,则格式化。