fast jedes Mal, wenn ich Graphics.DrawRectangle
oder Graphics.FillRectangle
(die int
Versionen) verwende Ich vermisse die Pixel am rechten und unteren Rand des Rechtecks, das ich zeichnen möchte.Pixel Verhalten von FillRectangle und DrawRectangle
Was ist die genaue Definition, welche durch
Graphics.FillRectangle(brush,x,y,width,height)
gefüllt erhalten Pixel und
Graphics.DrawRectangle(pen,x,y,width,height) // pen is one pixel width, i.e. width=0f
und gibt es eine logische Erklärung dafür? (So kann ich erinnere mich endlich das Verhalten :) ...)
EDIT:
Mit Oleg Zhuk des wunderbaren Try GDI+ Anwendung, konnte ich einen merkwürdigen Unterschied zwischen FillRectangle
und DrawRectangle
finden:
FillRectangle(brush,0,0,1,1)
Zeichnet einen einzelnen Punkt bei (0,0), was irgendwie verständlich ist (es ist ein Rechteck mit Breite und Höhe).
DrawRectangle(pen,0,0,1,1)
auf der anderen Seite zeichnet ein kleines 2 mal 2 Pixel Rechteck.
Das gleiche Verhalten für andere Breiten-/Höhenkombinationen gezeigt ist, erstreckt sich DrawRectangle
immer ein Pixel mehr nach links und nach unten (die ein wenig ärgerlich zB, wenn die ClientRectangle
Eigenschaft mit einem Rahmen um eine Kontrolle zu zeichnen)
Meine erste Frage gelöst (wie zu ihnen verhalten ...) gibt es immer noch die zweite: Warum benehmen sie sich so?
Entschuldigung wegen meiner gelöschten Antwort - es war spät (durch meine Körperuhr) und ich habe nicht richtig gelesen, nur voreilige Schlüsse gezogen. – Steve314