对于一个项目,我必须显示不带数据绑定的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"
。如果只有一个参数,并且该参数是整个字符串,则没有理由使用String.Format。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句