2017-07-28 52 views
0

TryWallpaperImageAsync方法總是返回false並且不設置壁紙。如果你看看這個問題:TrySetWallpaperImageAsync() always returns false,你會看到他們的修復程序將映像重定位到應用程序的本地文件夾。我在這裏做,但由於某種原因,我的壁紙仍然沒有改變。什麼可能導致此方法失敗?TrySetWallpaperImageAsync總是返回false,即使我使用Application LocalFolder

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

這是否適用(來自[文檔](https://docs.microsoft.com/en-us/uwp/api/Windows.System.UserProfile.UserProfilePersonalizationSettings))? - 「多次設置圖像時,新圖像文件的名稱必須與先前設置的圖像不同,如果使用與前一張圖像名稱相同的文件設置新圖像,則會失敗。」 –

+0

是的!更改名稱爲$「{Guid.NewGuid()}。jpg」實際上工作!我想我需要在下次更仔細地閱讀文檔。請繼續回答這個問題,以便我可以給您信用評論@ PeterTorr-MSFT –

回答

1

在處理重複的文件名時,有一個documented limitation API。

如果您嘗試設置爲牆紙的文件與當前牆紙名稱相同,則系統將忽略該請求並且不執行操作(返回false)。

設置壁紙時應始終使用唯一的文件名,以確保其正確設置。

相關問題