用于在Windows XP上计算桌面图标间距的公式或API

问题描述:

我已经构建了一个将网格线应用于图像或仅用于作为桌面壁纸的简单颜色的简单应用程序。这个想法是桌面图标可以安排在网格中。问题是,根据比我所了解的更多的事情,像素中的实际间距似乎因系统而异。我了解到,至少这些东西发挥的一个因素:用于在Windows XP上计算桌面图标间距的公式或API

  • 分辨率(杜)
  • 任务栏的大小和位置
  • 字体

必须有比这更多。也许有一些我不知道的API调用?

有一个1001点的方式来获取/设置这个(但我只知道2):-D

Windows注册表:

HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics

IconSpacingIconVerticalSpacing

通过代码:

using System.Management;

public string GetWinIconSpace()

{

ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2","SELECT * FROM Win32_Desktop"); 

foreach (ManagementObject wmi in searcher.Get()) 
{ 
    try 
    { 

     return "Desktop Icon Spacing: " + wmi.GetPropertyValue("IconSpacing").ToString(); 

    } 

    catch { } 

} 

return "Desktop Icon Spacing: Unknown"; 

}

和第三,我从来没有尝试过,你可以find it here

如果请求的图标大小不可用,它们也可能是由于缩放算法造成的大小问题。
(因为一个图标文件实际上是图标的集合,如在此线程约Icons and cursors know where they came from解释,从The Old New Thing