C# 如何制作日期时间和;SetWallpaperAsync";一起工作?

C# 如何制作日期时间和;SetWallpaperAsync";一起工作?,c#,datetime,uwp,C#,Datetime,Uwp,我正在尝试做一个UWP,根据一天中的时间改变壁纸和锁屏(作为开始)。我在实施这一目标时面临困难: 我在主页上有任务“setwallparasync”(在将其转移到后台任务之前,我要确保它工作正常),如下所示: private async Task<bool> SetWallpaperAsync() { bool success = false; if (UserProfilePersonalizationSettings.IsSupported()) {

我正在尝试做一个UWP,根据一天中的时间改变壁纸和锁屏(作为开始)。我在实施这一目标时面临困难:

我在主页上有任务“setwallparasync”(在将其转移到后台任务之前,我要确保它工作正常),如下所示:

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);