UWP 设置锁屏图像不起作用
UWP set lock screen image isn't working
我正在尝试通过我的应用设置锁屏背景。我正在使用以下代码:
var cachedPhotos = (await Photos.GetCachedPhotosAsync()).ToList(); // Get a list of Photo objects ({ "id": "12345.jpg", "url": "http://me.com/12345.jpg" }.
var newPhotos = (await Photos.GetAllPhotosAsync()).ToList(); // Ditto above comment.
var newPhotosList = ListHelpers.Merge(cachedPhotos, newPhotos); // Merge the two lists.
await Photos.CachePhotosAsync(newPhotosList); // Create a JSON file with a list of Photo objects. Also download each photo into the "photo_cache" folder.
var index = _random.Next(0, newPhotosList.Count - 1);
var photo = newPhotosList[index];
var file = await StorageFile.GetFileFromPathAsync($"{ApplicationData.Current.LocalCacheFolder.Path}\photo_cache\{photo.Id}");
if (await UserProfilePersonalizationSettings.Current.TrySetLockScreenImageAsync(file))
Debug.WriteLine("Wallpaper set!");
else
Debug.WriteLine("Wallpaper failed to set...");
如果我在文件资源管理器中查看照片,则该照片存在且有效。我的 C# 正在正确获取 StorageFile
。但是每当我运行TrySetLockScreenImageAsync
它returnsfalse
。 (请注意,它 仅 returns false
,而不是 Exception
或任何我可以实际看到问题所在的东西。)我是完全使用我发现的 here,但我无法让它工作。我还缺少其他内容吗?
好吧,出于某种奇怪的原因,我似乎必须在 StorageFile
上执行 CopyAsync
并将其复制到 LocalFolder
,然后使用新复制的文件。显然它不喜欢来自 LocalCacheFolder
.
的文件
我正在尝试通过我的应用设置锁屏背景。我正在使用以下代码:
var cachedPhotos = (await Photos.GetCachedPhotosAsync()).ToList(); // Get a list of Photo objects ({ "id": "12345.jpg", "url": "http://me.com/12345.jpg" }.
var newPhotos = (await Photos.GetAllPhotosAsync()).ToList(); // Ditto above comment.
var newPhotosList = ListHelpers.Merge(cachedPhotos, newPhotos); // Merge the two lists.
await Photos.CachePhotosAsync(newPhotosList); // Create a JSON file with a list of Photo objects. Also download each photo into the "photo_cache" folder.
var index = _random.Next(0, newPhotosList.Count - 1);
var photo = newPhotosList[index];
var file = await StorageFile.GetFileFromPathAsync($"{ApplicationData.Current.LocalCacheFolder.Path}\photo_cache\{photo.Id}");
if (await UserProfilePersonalizationSettings.Current.TrySetLockScreenImageAsync(file))
Debug.WriteLine("Wallpaper set!");
else
Debug.WriteLine("Wallpaper failed to set...");
如果我在文件资源管理器中查看照片,则该照片存在且有效。我的 C# 正在正确获取 StorageFile
。但是每当我运行TrySetLockScreenImageAsync
它returnsfalse
。 (请注意,它 仅 returns false
,而不是 Exception
或任何我可以实际看到问题所在的东西。)我是完全使用我发现的 here,但我无法让它工作。我还缺少其他内容吗?
好吧,出于某种奇怪的原因,我似乎必须在 StorageFile
上执行 CopyAsync
并将其复制到 LocalFolder
,然后使用新复制的文件。显然它不喜欢来自 LocalCacheFolder
.