C#/XAML-字符串到图像源的转换

C#/XAML-字符串到图像源的转换,c#,xaml,windows-runtime,windows-store-apps,C#,Xaml,Windows Runtime,Windows Store Apps,希望我能在这个问题上得到一些意见。首先,我要解释一下,我确实尝试过其他问题答案中的建议,这些建议与我的经历类似,但没有任何运气 目标是获取字符串并将其转换为XAML代码中图像元素的路径。类似于在代码隐藏文件中调整textblock的“text”属性的方法 courseFaculty.Text = BL_PageContent.FacultyMember; 其中FacultyMember是相关BL_PageContent.cs文件中的一个属性,我也希望这样做,但为图像路径提供一个字符串 这是我的

希望我能在这个问题上得到一些意见。首先,我要解释一下,我确实尝试过其他问题答案中的建议,这些建议与我的经历类似,但没有任何运气

目标是获取字符串并将其转换为XAML代码中图像元素的路径。类似于在代码隐藏文件中调整textblock的“text”属性的方法

courseFaculty.Text = BL_PageContent.FacultyMember;
其中FacultyMember是相关BL_PageContent.cs文件中的一个属性,我也希望这样做,但为图像路径提供一个字符串

这是我的图像XAML,它呈现一个空白的“占位符”,如果您愿意:

<Image x:Name="courseFacultyPic" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="246,127,10,0" Height="117" Width="104"></Image>
上面的代码块将由用户单击UI控件启动。但是,当我尝试它时,我得到一个关于我实例化Uri类的行的运行时异常。运行时异常如下所示:

中发生“System.UriFormatException”类型的异常 System.Private.Uri.dll,但未在用户代码中处理 其他信息:无效的URI:无法更改URI的格式 下定决心


欢迎提出任何想法/建议/意见。这是我的第一篇文章,也是我在应用程序中处理图像的第一次经验,我是自学成才的,所以请考虑一下。非常感谢

这是因为XAML内置了转换器,可以采用这样的图像名称并将其设置为图像源。使用新的位图图像(imageUri)时,应指定完整的图像路径

如果您使用的是WPF,您可以使用ImageSourceConverter,但我认为这不适用于UWP应用程序。我不确定。。。然而;一旦你自己写了,写自己的并不难


我也曾犯过这个错误。解决方案是您必须手动指定URI的类型。根据我的经验,假设已将映像添加到与应用程序源代码文件位于同一目录的项目中,则必须指定的URI类型为
.Relative

Uri
构造函数中,在第二个参数中指定它,如下所示:

uriimageuri=newuri(facultyPicPath,UriKind.Relative);

这是我问题的解决方案。谢谢你


您可能会喜欢这样您是否尝试过使用Uri构造函数重载
Uri(string,UriKind)
并将其设置为
UriKind.Relative
?我尝试过,但这次遇到了不同的运行时异常,关于我的URI场景下的BITMAP映像实例化:>“Syt.AgMUMutExtExchange”类型的异常发生在> MyLyLab.N.DLL中,但未在用户代码中处理>附加信息:给定的系统。URI不能转换为Windows .Fun.Uri。我尝试过,并且得到了不同的运行时异常。时间,以及关于我的URI实例化下的BITMAP映像实例化:>类型“Stase.AguMutExtExchange”的异常发生在> MyLyLab.N.DLL中,但未在用户代码中处理>附加信息:给定的系统。URI不能转换为Windows。基础。URI.您可以查看。虽然那个人正在开发一个Windows8商店应用程序,但它可能也适用于你的情况。这就是问题所在!谢谢你,我的朋友。。这就完成了我所需要的。干杯
<Image x:Name="courseFacultyPic" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="246,127,10,0" Height="117" Width="104" Source="facultyProf1.jpg"></Image>
string facultyPicPath = "collegeProf1.jpeg";
Uri imageUri = new Uri(facultyPicPath);
BitmapImage facultyImage = new BitmapImage(imageUri);
Image courseFacultyPic = new Image();
courseFacultyPic.Source = facultyImage;