Umrechnen von GraphicsUnit.Point nach GraphicsUnit.Pixel

Die Programmiersprache C# und Programmierung im .NET Framework/Mono
Antworten
Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Umrechnen von GraphicsUnit.Point nach GraphicsUnit.Pixel

Beitrag von Xin » Fr Dez 19, 2008 11:36 am

Ich muss eine Bitmap-Grafik zusammenbauen, die auch Text enthält.
Nun wird eine Bitmap-Grafik in Pixeln gemessen, der Font mit dem ich in die Grafik reinschreiben möchte, enthält als Font.Unit aber GraphicsUnit.Point.

Damit kann ich den Text allerdings nicht sauber positionieren, da ich die Größe in Pixel brauche. Weiß jemand, wo man von GraphicsUnit.Point nach GraphicsUnit.Point umrechnen lassen kann?
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Umrechnen von GraphicsUnit.Point nach GraphicsUnit.Pixel

Beitrag von nufan » Fr Dez 19, 2008 9:34 pm

Xin hat geschrieben:Weiß jemand, wo man von GraphicsUnit.Point nach GraphicsUnit.Point umrechnen lassen kann?
Hmmm... GraphicsUnit.Point nach GraphicsUnit.Point... ist doch ganz einfach :)

Ich nehme an, du willst pt (Schrift) in pixel umrechnen oder?

Da ich nichts zu tun habe (und das Wiki erst Morgen am Plan steht :) ) hab ich mal gegoogelt:
http://forum.de.selfhtml.org/archiv/199 ... 59/#m32023
http://www.fledisoft.de/func/twips.php

Ist zwar nicht C#, aber das Prinzip sollte das gleiche sein.

Keine Ahnung ob dir das was bringt :)

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Umrechnen von GraphicsUnit.Point nach GraphicsUnit.Pixel

Beitrag von cloidnerux » Sa Dez 20, 2008 1:00 am

Hab enige erfahrungen mit VC++ und würde desshalb folgendes vorschlagen:
Da das Objekt GraphicsUnit.Point eigentlich nur aus int's usw. besteht, kannst du dir eine KOnvertireung volgendermaßen machen:

Code: Alles auswählen

GraphicsUnt.Pixel = gcnew GraphicsUnit.Pixel(static_cast<int to irgendwas>(GraphiscUnit.Point)...);
Ich weiß nicht wie die Klasse aufgebaut ist, aber sollte so gehen(geht static_cast unter C#?)
Oder unter der Visual Reihe gibts ja die intellLicens(oder so ähnich), es kann sein, das die Klasse schon eine Konvertierungsfunktion bereit hält.
Und für den Notfall würde evt. das gehen:

Code: Alles auswählen

dynamic_cast<Zielobjekt>(Quelle)
Unter Vc++ funktioniert das ganze.
Hoffe es kann dir Helfen.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: Umrechnen von GraphicsUnit.Point nach GraphicsUnit.Pixel

Beitrag von Kerli » So Dez 21, 2008 11:24 am

@cloidnerux:
Du weißt aber schon, dass es hier um eine Umrechnung zwischen zwei verschiedenen Einheiten geht und nicht um einen Cast?
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Umrechnen von GraphicsUnit.Point nach GraphicsUnit.Pixel

Beitrag von Xin » So Dez 21, 2008 8:13 pm

Um des Rätsels Lösung preiszugeben:

Graphics enthält eine Funktion Measure-String, die ich auch schon benutzte, um die Länge des Strings zu bestimmen.
Es komm ein SizeF Objekt zurück, das dann die Breite, als auch die gesuchte Höhe enthält.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten