即使我使用Application LocalFolder,TrySetWallpaperImageAsync也始终返回false

时间:2017-07-28 17:01:13

标签: c# uwp

TryWallpaperImageAsync方法始终返回false并且不设置壁纸。如果您查看此问题:TrySetWallpaperImageAsync() always returns false,您会看到他们的修复程序是将图像重定位到应用程序的本地文件夹。我在这做,但由于某种原因我的壁纸仍然没有改变。什么可能导致此方法失败?

string name = "wallpaper.jpg";
var file = await StorageFile.GetFileFromPathAsync($"{ApplicationData.Current.LocalFolder.Path}\\{name}");
var success = await SetWallpaperAsync(file);

async Task<bool> SetWallpaperAsync(StorageFile fileItem)
{
    bool success = false;
    if (UserProfilePersonalizationSettings.IsSupported())
    {
        UserProfilePersonalizationSettings profileSettings = UserProfilePersonalizationSettings.Current;
        success = await profileSettings.TrySetLockScreenImageAsync(fileItem);
    }
    return success;
}

1 个答案:

答案 0 :(得分:1)

在处理重复的文件名时,有一个documented limitation的API。

如果您尝试设置为壁纸的文件与当前壁纸的名称相同,系统将忽略该请求并禁止操作(返回false)。

设置壁纸时应始终使用唯一的文件名,以确保设置正确。