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