2008-10-14 8 views
1

Я создал простое приложение, которое применяет линии сетки к изображению или просто простые цвета для использования в качестве обоев рабочего стола. Идея состоит в том, что значки рабочего стола могут быть расположены внутри сетки. Проблема в том, что в зависимости от большего количества вещей, чем я понимаю, фактический интервал в пикселях кажется отличным от системы к системе. Я узнал, что по крайней мере эти вещи играть фактор:Формула или API для расчета расстояния между значками рабочего стола в Windows XP

  • Разрешение (Дух)
  • размер Taskbar и размещение
  • шрифты

Там должно быть больше, чем это. Может быть, есть какой-то апи-звонок, о котором я не знаю?

ответ

3

есть 1001 способов получить/установить это (но я знаю только 2) :-D

Окна Регистрация:

HKEY_CURRENT_USER\Control Panel\Desktop\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"; 

}

и 3, что я никогда не пробовал вы можете find it here

0

Они также могут быть проблемой размера из-за алгоритма масштабирования, если запрошенный размер значка недоступен.
(так как файл значок на самом деле это коллекция иконок, как описано в этой теме о Icons and cursors know where they came from, от The Old New Thing)