我的xaml中有类似的东西:
<Grid>
<Image Name="image" Source="../../Images/DefaultImage.png" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"></Image>
</Grid>
如何获得(使用我的代码隐藏C#代码)图像源的绝对路径?
答案 0 :(得分:5)
当从Uri字符串或文件名转换时,ImageConverter会创建一个BitmapDecoder并提取其第一个Frame。通过以下方式获得Uri:
((BitmapFrame)image.Source).Decoder.ToString()
请注意,这通常会返回绝对Uri而不是XAML中找到的原始Uri。如果您需要XAML中的确切原始Uri,它可以在BitmapDecoder的_uri字段中找到,但是您需要反射和提升的代码权限才能访问它,而且您的代码可能在以后的.NET Framework版本中不起作用。
答案 1 :(得分:4)
每次都适合我的方法就是这条简单的线
(YourImage.Source as BitmapImage).UriSource
此外,您可以根据需要使用AbsolutePath或AbsoluteUri of UriSource。
答案 2 :(得分:3)
你可以试试这个:
string path = ((BitmapImage)image.Source).UriSource.AbsolutePath;