2008-10-14 6 views
1

J'ai créé une application simple qui applique des lignes de quadrillage à une image ou simplement des couleurs simples à utiliser comme fond d'écran. L'idée est que les icônes du bureau peuvent être organisées dans la grille. Le problème est que selon plus de choses que je comprends l'espacement réel en pixels semble être différent d'un système à l'autre. J'ai appris que au moins ces choses jouent un facteur:Formule ou API permettant de calibrer l'espacement des icônes de bureau sous Windows XP

  • Résolution (duh)
  • taille de Taskbar et le placement
  • Fonts

Il doit y avoir plus que cela. Peut-être qu'il y a un appel api que je ne connais pas?

Répondre

3

il y a 1001 façons d'obtenir/définir cette (mais je ne sais 2) :-D

de Windows Registre:

HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics

valeurs sont IconSpacing et IconVerticalSpacing

par code:

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

}

et le 3e que je ne ai jamais essayé, vous pouvez find it here

0

Ils peuvent également être un problème de taille en raison de l'algorithme de mise à l'échelle si la taille demandée de l'icône n'est pas disponible.
(depuis un fichier icône est en fait une collection d'icônes, comme expliqué dans ce fil sur les Icons and cursors know where they came from, du The Old New Thing)

Questions connexes