从WPF中的图像获取绝对文件路径

mel*_*etz 3 wpf image bitmap

我的xaml中有这样的东西:

<Grid>
    <Image Name="image" Source="../../Images/DefaultImage.png" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"></Image>
</Grid>
Run Code Online (Sandbox Code Playgroud)

如何获得(使用我的代码隐藏C#代码)图像源的绝对路径?

Ray*_*rns 5

从Uri字符串或文件名转换时,ImageConverter创建一个BitmapDecoder并提取其第一个Frame.获得Uri应该是可能的:

((BitmapFrame)image.Source).Decoder.ToString()
Run Code Online (Sandbox Code Playgroud)

请注意,这通常会返回绝对Uri而不是XAML中找到的原始Uri.如果您需要XAML中的确切原始Uri,它可以在BitmapDecoder的_uri字段中找到,但是您需要反射和提升的代码权限才能访问它,而且您的代码可能在以后的.NET Framework版本中不起作用.


Jat*_*tin 5

每次对我有用的方法是这条简单的线

(YourImage.Source as BitmapImage).UriSource
Run Code Online (Sandbox Code Playgroud)

另外,您可以根据需要在返回的UriSource的AbsolutePath或AbsoluteUri上进行操作。