C# 如何制作日期时间和;SetWallpaperAsync";一起工作?
我正在尝试做一个UWP,根据一天中的时间改变壁纸和锁屏(作为开始)。我在实施这一目标时面临困难: 我在主页上有任务“setwallparasync”(在将其转移到后台任务之前,我要确保它工作正常),如下所示:C# 如何制作日期时间和;SetWallpaperAsync";一起工作?,c#,datetime,uwp,C#,Datetime,Uwp,我正在尝试做一个UWP,根据一天中的时间改变壁纸和锁屏(作为开始)。我在实施这一目标时面临困难: 我在主页上有任务“setwallparasync”(在将其转移到后台任务之前,我要确保它工作正常),如下所示: private async Task<bool> SetWallpaperAsync() { bool success = false; if (UserProfilePersonalizationSettings.IsSupported()) {
private async Task<bool> SetWallpaperAsync()
{
bool success = false;
if (UserProfilePersonalizationSettings.IsSupported())
{
var imageID = DateTime.Now.Hour.ToString("HH");
var uri = new Uri($"ms-appx:///Dynamic/Dynamic-{imageID}.jpg");
var file = await StorageFile.GetFileFromApplicationUriAsync(uri);
success = await UserProfilePersonalizationSettings.Current.TrySetWallpaperImageAsync(file);
success = await UserProfilePersonalizationSettings.Current.TrySetLockScreenImageAsync(file);
}
return success;
}
如何调试此代码并查看其停止位置?如果使用
debug.Writeline在输出窗口中输出imageID
变量:
var imageID = DateTime.Now.Hour.ToString("HH");
Debug.WriteLine(imageID);
您可以看到输出是:HH
。
原因是格式字符串HH
适用于DateTime
变量,但实际上您只在Hour
变量上调用它,该变量只是一个数字
有两种可能的解决方案:
从调用中删除.Hour
:var imageID=DateTime.Now.ToString(“HH”)代码>
只需使用Hour
作为数字:var imageID=DateTime.Now.Hour.ToString()
李>
这两种解决方案是等效的,将产生24小时格式的小时数
var imageID = DateTime.Now.Hour.ToString("HH");
Debug.WriteLine(imageID);