tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
2861
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Danielku15
    Danielku15 Danielku15 ist offline Mitglied Platin
    Registriert seit
    Feb 2004
    Ort
    Österreich
    Beiträge
    731
    Blog-Einträge
    3
    Ja ich bins mal wieder.

    Diesmal treibt mich meine Wissenslust in den Schriftartenbereich. Ich hab nun verschiedenste Möglichkeiten gefunden die angebliche Zeichenbreite eines Font Objekts zu ermitteln. (Ich benötige nur monospaced Fonts). Jedoch gibt mir keine der besagten Möglichkeiten die Zeichenbreite in Pixel zurück.
    Hier ein Beispiel:
    Ich habe folgendes Font-Objekt:
    Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular);

    Wenn ich den Text unter der Lupe betrachte ist 1 Zeichen stolze 8x8px groß. Jedoch bekomme ich folgende Ergebnisse:
    Code csharp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    Graphics g = CreateGraphics();
    System.Drawing.Font MonoSpacedFont = new Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular);
     
    MessageBox.Show(MonoSpacedFont.Height.ToString()); // 15
    MessageBox.Show(MonoSpacedFont.GetHeight().ToString()); // 14,72656
    MessageBox.Show(MonoSpacedFont.Size.ToString()); // 9,75
    MessageBox.Show(MonoSpacedFont.SizeInPoints.ToString()); // 9,75
    MessageBox.Show(g.MeasureString("A", MonoSpacedFont).Height.ToString()); // 16,35156
    MessageBox.Show(g.MeasureString("A", MonoSpacedFont).Width.ToString()); //12,36947
    MessageBox.Show(g.MeasureString("A", MonoSpacedFont).ToSize().Height.ToString()); // 16
    MessageBox.Show(g.MeasureString("A", MonoSpacedFont).ToSize().Width.ToString()); // 12

    Ich weiß einfach nicht woran es liegen könnte dass ich nicht die gewünschten 8px zurückgegeben werden.

    gruß Daniel
    Geändert von Danielku15 (31.08.06 um 00:31 Uhr)
     

  2. #2
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Weil du dir nicht den MSDN-Eintrag zum Thema Graphics/MeasureString durchgelesen hast ...

    Graphics besitzt eine Eigenschaft PageUnit der eine Maßeinheit übergeben werden kann, auf die MeasureString bei seiner Berechnung zurückgreift. Und zwar bekommt PageUnit den Wert aus der GraphicsUnit Enumeration, welche folgende Werte haben kann:
    • Display
    • Document
    • Inch
    • Millimeter
    • Pixel
    • Point
    • World
    Genauere und weiterführende Informationen gibt es unter http://msdn2.microsoft.com/en-us/lib...phicsunit.aspx
     

Ähnliche Themen

  1. 10 Pixel im Firefox / 10 Pixel im IE 6
    Von ne0hype im Forum CSS
    Antworten: 2
    Letzter Beitrag: 27.12.07, 01:15
  2. Bilder pixel für pixel auslesen!
    Von tobee im Forum Coders Talk
    Antworten: 9
    Letzter Beitrag: 21.06.06, 00:11
  3. IE stellt 1 Pixel etwa 5 pixel dar
    Von mrtest im Forum HTML & XHTML
    Antworten: 4
    Letzter Beitrag: 16.06.05, 00:00
  4. c4d pixel ?!
    Von dominik im Forum Cinema 4D
    Antworten: 1
    Letzter Beitrag: 25.02.03, 06:00