Sie können die Eigenschaften DPiX und DpiY des Graphics-Objekts verwenden, auf dem Sie sich befinden Zeichnung (die Sie haben müssen, da die Umwandlung in Abwesenheit von a bedeutungslos ist Grafikkontext irgendeiner Art.)
In DpiX und DpiY steht "D" für "Punkte" oder Pixel, während "i" für "Zoll" steht. Also, wird es Konvertiere Pixel in Zoll. Dann müssen Sie nur noch Zoll in Zoll umrechnen Zentimeter = & gt; (x * 2.54)
Auch wenn Sie genauer sein wollen, schauen Sie sich folgendes an: HOWTO: Wie eine Anwendung echte Maßeinheiten anzeigt
Pixel und Zentimeter sind zwei verschiedene Einheiten, die entsprechend der DPI-Einstellung des Benutzers berechnet werden. Um richtig zu konvertieren, müssen Sie die DPI des Benutzerbildschirms kennen.
Wenn Sie ein 12,8-Zentimeter-Display haben, das ein 1280x1024-Bild zeigt, dann Sie haben 100 Pixel pro Zentimeter.
Sie können jedoch versuchen, die Graphics.TransformPoints zu verwenden, um von Pixel in cm oder umgekehrt zu konvertieren .
Länge in CM = LenghtPixels * 2.54 / DPI
Ich denke, Sie können die DPI jeder Anzeige mit WMI abrufen, der Wert, nach dem Sie suchen, befindet sich in der Klasse Win32_DisplayConfiguration unter dem Feld LogPixe.
Überprüfen Sie diesen Link zum Verwenden von WMI zum Abrufen von Daten: LINK
Wie ich in meinem Kommentar gesagt habe, müssen Sie mehr Informationen geben. (Ist dies eine Windows Forms App? ASP.Net?)
Der grundlegende Ansatz ist:
Graphics
enthält die DpiX
und DpiY
. Mitglieder, damit Sie diese verwenden können.