设置图像源

我正在尝试将图像源设置为来自我的计算机(而不是资产)。
这就是我试图这样做的方式:

Uri uri = new Uri(@"D:\Riot Games\about.png", UriKind.Absolute); ImageSource imgSource = new BitmapImage(uri); this.image1.Source = imgSource; 

我尝试了几乎所有我能在网上找到的东西,但似乎没什么用。

知道为什么吗?

XAML:

      

您无法直接从Windows metro应用程序访问磁盘驱动器。 从Windowsapp store应用中的文件访问权限中提取

默认情况下,您可以使用Windowsapp store应用访问某些文件系统位置,例如应用安装目录,应用数据位置和“下载”文件夹。 应用还可以通过文件选择器或通过声明function访问其他位置。

但是,通过启用包清单文件中的function,您可以访问一些特殊文件夹,如Pictures library ,文档库等。 因此,从清单文件启用图片库后,此代码将起作用(复制图片库文件夹中的about.png文件)

  private async void SetImageSource() { var file = await Windows.Storage.KnownFolders.PicturesLibrary.GetFileAsync("about.png"); var stream = await file.OpenReadAsync(); var bitmapImage = new BitmapImage(); bitmapImage.SetSource(stream); image1.Source = bitmapImage; } 

但理想的解决方案是将您的文件包含在您的应用程序中,并将其构建操作设置为Content,以便可以将其与其他内容文件一起复制到Appx文件夹中。 然后你可以像这样设置图像源 –

  public MainPage() { this.InitializeComponent(); Uri uri = new Uri(BaseUri, "about.png"); BitmapImage imgSource = new BitmapImage(uri); this.image1.Source = imgSource; } 

或者您只能在XAML中执行此操作:

  

以下是您可以从应用程序访问的特殊文件夹列表 –

  1. 本地应用数据
  2. 漫游应用数据
  3. 临时应用数据
  4. App安装位置
  5. 下载文件夹
  6. 文件库
  7. 音乐库
  8. 图片库
  9. video库
  10. 可卸除的设备
  11. 家庭组
  12. 媒体服务器设备

要从清单文件启用function,请双击解决方案中的Package.appxmanifest文件,然后选中“function”选项卡下的“ Pictures Library复选框,以便为您的应用程序启用它。 同样,您可以为要访问的其他文件夹执行此操作。

在此处输入图像描述