设置图像源
我正在尝试将图像源设置为来自我的计算机(而不是资产)。
这就是我试图这样做的方式:
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中执行此操作:
以下是您可以从应用程序访问的特殊文件夹列表 –
- 本地应用数据
- 漫游应用数据
- 临时应用数据
- App安装位置
- 下载文件夹
- 文件库
- 音乐库
- 图片库
- video库
- 可卸除的设备
- 家庭组
- 媒体服务器设备
要从清单文件启用function,请双击解决方案中的Package.appxmanifest
文件,然后选中“function”选项卡下的“ Pictures Library
复选框,以便为您的应用程序启用它。 同样,您可以为要访问的其他文件夹执行此操作。