0

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

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

注册表值设置正确,但是当我转到Personalize屏幕时,我看到设置是Tiled.

我正在运行 Windows 8.1 预览版以防万一。

4

1 回答 1

1

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

  rkWallPaper.SetValue("WallpaperStyle", "2");
  rkWallPaper.SetValue("TileWallpaper", "0");

注意添加的双引号。

于 2013-09-21T16:29:15.987 回答