tutorials.de Buch-Aktion 02/2012
ERLEDIGT
JA
ANTWORTEN
0
ZUGRIFFE
1672
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
    Hallo Leute.
    Ich modifiziere meine Anwendung gerade so, dass ich komplexe Pfade (GraphicsPath) durch eine Schriftart mit den gewünschten Symbole ersetze.
    In meiner Anwendung (welche Noten darstellt) müssen diese Symbole nun genau Positioniert werden. Wenn ich jedoch meine Zeichen an bspw. Position 0,0 zeichne, werden die Symbole nicht nicht an genau diese Position gestellt. Schwer zu beschreiben. Darum habe ich kurzer Hand eine kleine Grafik angefertigt. (Anhang).

    Die linke Box resultiert aus folgendem Code:
    Code csharp:
    1
    2
    3
    
                SizeF s = e.Graphics.MeasureString("C", DrawingResources.MusicFont);
                e.Graphics.DrawRectangle(Pens.Red, 0, 0, s.Width, s.Height);
                e.Graphics.DrawString("C", DrawingResources.MusicFont, Brushes.Black, 0, 0);

    Seltsamerweise wird das Symbol innerhalb des em-Rechtecks (?) unten und zentriert dargestellt.
    In meinem Font-Editor jedoch ist die Schrift ganz linksbündig dargestellt und auch in den Zeicheneinstellungen ist das linke Padding 0. ("Whitespace before Character: 0", "Left Side Bearing: 0")
    Zum Test habe ich in Photoshop einen Rechteckigen Pfad erstellt und eine Textbox innerhalb dieser Box angeordnet. Dort wird der Text ganz linksbündig gerendert.
    Und auch in Word (3. Box) wird bei Markierung des Textes ersichtlich dass das Zeichen ganz linksbündig ist.

    Nur warum ist das so? Gibt es eine spezielle Einstellung welche festlegt dass pro Zeichen ein Padding angehängt wird? Da in der Anwendung auch ein Zoom-Faktor angegeben werden kann kann ich auch nicht einfach einen gewissen Betrag von den Koordinaten abziehen da ich keine ordentliche Berechnungsgrundlage für den Abstand habe. Auch bei anderen Schriftarten wird automatisch ein Padding eingefügt.

    Hat einer eine Idee?

    [EDIT]
    Nach unzähligen Google-Suchen habe ich endlich die richtigen Suchbegriffe gefunden und auch einen entsprechenden Blog+MSDN Artikel gefunden:
    http://weblogs.asp.net/israelio/arch...ed-_2100_.aspx
    http://support.microsoft.com/?id=307208

    Bei der Verwendung von StringFormat.GenericTypographic für das Zeichnen wird das Zeichen schon mal linksbündig ausgerichtet. Der Abstand von oben resultiert in meinem Fall noch wegen des Fonts.

    Grüße Daniel
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken Graphics.DrawString/GraphicsPath.AddString - Padding pro Zeichen?-sample.png  
    Geändert von Danielku15 (28.03.10 um 14:25 Uhr)
     

Ähnliche Themen

  1. GraphicsPath Editor / Konfiguration
    Von Danielku15 im Forum .NET Grafik und Sound
    Antworten: 0
    Letzter Beitrag: 08.12.08, 17:40
  2. gedrehte Text mit GraphicsPath
    Von MikeBi im Forum .NET Grafik und Sound
    Antworten: 0
    Letzter Beitrag: 29.02.08, 11:53
  3. GraphicsPath biegen
    Von Klobow im Forum .NET Grafik und Sound
    Antworten: 0
    Letzter Beitrag: 05.09.06, 16:23
  4. Graphics.DrawString Text-Position
    Von JK_net im Forum .NET Archiv
    Antworten: 8
    Letzter Beitrag: 30.04.05, 15:18
  5. padding-top und padding-bottom Problem
    Von kalfany im Forum CSS
    Antworten: 4
    Letzter Beitrag: 12.03.05, 13:35