我的应用程序需要的功能是,如果用户复制图像文件(例如,桌面文件夹中的.jpg文件),我需要从剪贴板中提取该文件并将其显示在我的应用程序中。
我已经可以从剪贴板中提取存储文件,并获取文件路径。但是当我尝试将文件路径读入BitmapImage时,我收到了System.UnauthorizedAccessException
错误,因为该图片不在应用程序的文件夹中。
答案 0 :(得分:2)
听起来您试图按路径打开文件,而不是直接使用文件选择器返回的 StorageFile 。
您的应用无法直接访问大多数文件系统(包括下载目录),只能通过文件系统代理间接访问此类文件。 StorageFile对象与代理一起使用以打开用户已授权的文件,并提供应用程序读取和写入的文件内容流。
您可以使用Xamarin.Plugin.FilePicker或FilePicker-Plugin-for-Xamarin-and-Windows。
答案 1 :(得分:0)
你可以 x:绑定 XAML的路径图片
<Image>
<Image.Source>
<BitmapImage UriSource="{x:Bind GetAbsoluteUri(Path)}"/>
</Image.Source>
</Image>
代码背后:
private Uri GetAbsoluteUri(string path)
{
return new Uri(Path.GetFullPath(path), UriKind.Absolute);
}
尝试,希望它能够工作:)