public void ApplyWallpaper(Wallpaper wallpaper)
 {
     if (IsForegroundFullScreen())
     {
         LoggerService.Instance.WriteLog("Full-screen app detected.");
         return;
     }
     if (_currentWallpaper != null && _currentWallpaper.Equals(wallpaper) &&
         _currentResolution == Screen.PrimaryScreen.Bounds.Size)
     {
         return;
     }
     _currentResolution = Screen.PrimaryScreen.Bounds.Size;
     if (!string.IsNullOrEmpty(wallpaper.ImagePath))
     {
         var originalPic = new Bitmap(wallpaper.ImagePath);
         var resizedPic  = ResizePicture(originalPic, wallpaper.ResizeMode);
         resizedPic.Save(Consts.TempWallpaperPath);
         SetWallpaper(Consts.TempWallpaperPath);
     }
     else
     {
         File.Create(Consts.TempWallpaperPath).Close();
         SetWallpaper(Consts.TempWallpaperPath);
     }
     SetWallcolor(wallpaper.WallColor);
     // Wallpaper is MUTABLE!!
     _currentWallpaper = (Wallpaper)wallpaper.Clone();
 }