Domanda

Ho creato una semplice applicazione che applica linee di griglia a un'immagine o solo semplici colori da utilizzare come sfondo del desktop. L'idea è che le icone del desktop possano essere disposte all'interno della griglia. Il problema è che, a seconda di più cose di quante io capisca, la spaziatura effettiva in pixel sembra essere diversa da sistema a sistema. Ho imparato che almeno queste cose svolgono un ruolo:

  • Risoluzione (duh)
  • Dimensioni e posizionamento della barra delle applicazioni
  • Caratteri

Deve esserci di più. Forse c'è qualche chiamata API che non conosco?

È stato utile?

Soluzione

Esistono 1001 modi per ottenerlo / impostarlo (ma ne conosco solo 2) :-D

Registro di Windows:

HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics

i valori sono IconSpacing e IconVerticalSpacing

per codice:

utilizzando System.Management;

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

}

e il terzo che non ho mai provato puoi trovarlo qui

Altri suggerimenti

Potrebbero anche essere un problema di dimensioni a causa dell'algoritmo di ridimensionamento se la dimensione richiesta dell'icona non è disponibile.
(poiché un file icona è in realtà una raccolta di icone, come spiegato in questa discussione su Icone e cursori sanno da dove provengono , dal The Old New cosa )

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top