1

我已经构建了一个简单的应用程序,它将网格线应用于图像或只是简单的颜色用作桌面壁纸。这个想法是桌面图标可以排列在网格内。问题是,取决于比我理解的更多的事情,像素的实际间距似乎因系统而异。我了解到,至少这些事情是一个因素:

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

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

4

2 回答 2

3

有 1001 种方法可以获取/设置它(但我只知道 2 种):-D

窗口注册:

HKEY_CURRENT_USER\控制面板\桌面\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";

}

我从未尝试过的第三个你可以在这里找到

于 2008-10-14T21:55:27.030 回答
0

如果请求的图标大小不可用,它们也可能是由于缩放算法造成的大小问题。
(因为图标文件实际上是图标的集合,正如这个关于图标和光标知道它们来自哪里的线程中所解释的那样,来自The Old New Thing

于 2008-10-14T21:53:26.257 回答