UWP - 如何从应用程序内部的桌面读取.jpg

时间:2017-08-18 08:59:03

标签: exception xamarin bitmap uwp xamarin.forms

我的应用程序需要的功能是,如果用户复制图像文件(例如,桌面文件夹中的.jpg文件),我需要从剪贴板中提取该文件并将其显示在我的应用程序中。

我已经可以从剪贴板中提取存储文件,并获取文件路径。但是当我尝试将文件路径读入BitmapImage时,我收到了System.UnauthorizedAccessException错误,因为该图片不在应用程序的文件夹中。

2 个答案:

答案 0 :(得分:2)

听起来您试图按路径打开文件,而不是直接使用文件选择器返回的 StorageFile

您的应用无法直接访问大多数文件系统(包括下载目录),只能通过文件系统代理间接访问此类文件。 StorageFile对象与代理一起使用以打开用户已授权的文件,并提供应用程序读取和写入的文件内容流。

您可以使用Xamarin.Plugin.FilePickerFilePicker-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);
    }

尝试,希望它能够工作:)