我已经构建了一个简单的应用程序,它将网格线应用于图像或只是简单的颜色用作桌面壁纸。这个想法是桌面图标可以排列在网格内。问题是,取决于比我理解的更多的事情,像素的实际间距似乎因系统而异。我了解到,至少这些事情是一个因素:
- 分辨率(呵呵)
- 任务栏大小和位置
- 字体
必须有更多。也许有一些我不知道的 api 调用?
我已经构建了一个简单的应用程序,它将网格线应用于图像或只是简单的颜色用作桌面壁纸。这个想法是桌面图标可以排列在网格内。问题是,取决于比我理解的更多的事情,像素的实际间距似乎因系统而异。我了解到,至少这些事情是一个因素:
必须有更多。也许有一些我不知道的 api 调用?
有 1001 种方法可以获取/设置它(但我只知道 2 种):-D
窗口注册:
HKEY_CURRENT_USER\控制面板\桌面\WindowMetrics
值为IconSpacing和IconVerticalSpacing
通过代码:
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";
}
我从未尝试过的第三个你可以在这里找到
如果请求的图标大小不可用,它们也可能是由于缩放算法造成的大小问题。
(因为图标文件实际上是图标的集合,正如这个关于图标和光标知道它们来自哪里的线程中所解释的那样,来自The Old New Thing)