C# 以编程方式设置墙纸始终平铺图像

C# 以编程方式设置墙纸始终平铺图像,c#,winapi,pinvoke,.net-4.5,C#,Winapi,Pinvoke,.net 4.5,我有一段代码来设置桌面壁纸,但是图像总是平铺而不是拉伸 using (RegistryKey rkWallPaper = Registry.CurrentUser.OpenSubKey("Control Panel\\Desktop", true)) { rkWallPaper.SetValue("WallpaperStyle", 2); rkWallPaper.SetValue("TileWallpaper", 0); } return SystemParametersInfo

我有一段代码来设置桌面壁纸,但是图像总是平铺而不是拉伸

using (RegistryKey rkWallPaper = Registry.CurrentUser.OpenSubKey("Control Panel\\Desktop", true))
{
    rkWallPaper.SetValue("WallpaperStyle", 2);
    rkWallPaper.SetValue("TileWallpaper", 0);
}
return SystemParametersInfo(0x14, 0, imagePath, 0x01 | 0x02);
注册表值设置正确,但是当我进入
个性化设置
屏幕时,我看到设置为
平铺


我正在运行Windows 8.1预览,以防出现问题。

这些注册表值是字符串,而不是整数。从Regedit.exe可以看出,它将值显示为REG_SZ而不是REG_DWORD。这应该解决它:

  rkWallPaper.SetValue("WallpaperStyle", "2");
  rkWallPaper.SetValue("TileWallpaper", "0");
注意添加的双引号