Skaliertes Bild wird ungenau gezeichnet

Danielku15

Erfahrenes Mitglied
Hallo.
Ich arbeite gerade an einem SkinFramework und erstelle gerade einen Vista Skin. Nur läufts irgendwie mit dem Zeichnen nicht ganz. Ich hab für die Mitte der Titelleiste ein 156x33px großes PNG welches ich auf die Breite skaliere. Nur hab ich ein folgendes Problem. Das Bild sollte genau bis zum Beginn eines folgenden Bildes gehen. Jedoch läuft das Bild in den letzten 4 Pixeln ins Transparente aus. (Anhang) Ist da was an meinen Berechnungen falsch oder muss ich irgend ein Flag setzen dass das Bild Pixelgenau gezeichnet wird? Wenn ich das Fenster kleiner skaliere passt das Bild genau bzw. läuft schon ins andere Bild über, wenn ich das Fenster größer skaliere wird der Abstand größer.
Hier mein Code:
C#:
// Title Bar
//
// Left
oGraphics.DrawImage(VistaResources.top_left,
                new Rectangle(0, 0, 94, 33));
// Center
oGraphics.DrawImage(VistaResources.top_center,
                new Rectangle(94, 0, _oSkinForm.Width - 202, 33));
// Right
oGraphics.DrawImage(VistaResources.top_right, 
                new Rectangle(_oSkinForm.Width - 108, 0, 108, 33));

Hat jemand ne Lösung?

Gruß Daniel
 

Anhänge

  • TitleBar.png
    TitleBar.png
    43,1 KB · Aufrufe: 20
Hab nun die Lösung gefunden.
Ich musste noch diese 2 Eigenschaften festlegen damit die Skalierung richtig berechnet wird.
C#:
oGraphics.InterpolationMode = InterpolationMode.NearestNeighbor;
oGraphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
 
Zurück