c# – W10 UWP – 将远程图像设置为桌面墙纸/锁屏

我正在尝试在我的W10 UWP应用程序中将远程图像设置为桌面壁纸/手机锁屏:
string name = "test_image.jpg";
Uri uri = new Uri("http://www.ucl.ac.uk/news/news-articles/1213/muscle-fibres-heart.jpg");

// download image from uri into temp storagefile
var file = await StorageFile.CreateStreamedFileFromUriAsync(name,uri,RandomAccessStreamReference.CreateFromUri(uri));

// file is readonly,copy to a new location to remove restrictions
var file2 = await file.CopyAsync(KnownFolders.PicturesLibrary);

// test -- WORKS!
//var file3 = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/Design/1.jpg"));

// try set lockscreen/wallpaper
if (ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons")) // Phone
    success = await UserProfilePersonalizationSettings.Current.TrySetLockScreenImageAsync(file2);
else // PC
    success = await UserProfilePersonalizationSettings.Current.TrySetWallpaperImageAsync(file2);

file1无法正常工作,因此我将其复制到新位置(图片库)以删除限制 – >文件2.

注意:file3有效,所以我不确定发生了什么 – 我假设TrySetWallpaperImageAsync / TrySetLockScreenImageAsync只接受msappx本地文件…

任何人都有关于工作的想法?

谢谢.

解决方法

首先将远程映像保存到ApplicationData.Current.LocalFolder,然后使用TrySetWallpaperImageAsync / TrySetLockScreenImageAsync并指向保存的映像,而不是直接引用远程映像应该工作.

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...