den Code Dump Entschuldigung, dies sind Funktionen innerhalb eines Usercontrol.NET Usercontrol: Size-Eigenschaft gibt falschen Wert auf Resize-Ereignis
private void PNGQuantPreviewControl_Resize(object sender, EventArgs e)
{
createOffScreenBm();
draw();
}
private void createOffScreenBm()
{
offScreenBm = new Bitmap(this.Size.Width, this.Size.Height);
offScreenGfx = Graphics.FromImage(offScreenBm);
}
private void draw()
{
// draw background
offScreenGfx.FillRectangle(transTexture, 0, 0, offScreenBm.Width, offScreenBm.Height);
// draw image preview
offScreenGfx.DrawImage(pngQuantPreview, getTopLeftPosition());
// apply to picture box
this.CreateGraphics().DrawImage(offScreenBm, 0, 0);
}
Also, wenn die Steueränderungen Größe, den Off-Screen-Bitmap erstellt die neue widerzuspiegeln Größe und zeichnet das Bild neu.
Wenn ich jedoch schnell die Größe des Steuerelements ändert, füllt die Bitmap es nicht, es gibt eine Lücke links und rechts.
Ich bin ziemlich neu in C#, also gibt es wahrscheinlich etwas offensichtlich, dass ich falsch mache, oder ich lese die Größenwerte zur falschen Zeit. Irgendwelche Ideen?
Vielen Dank. Ich habe die DoubleBuffer-Eigenschaft anstelle von SetStyle verwendet. Außerdem war mir zunächst nicht klar, dass ich das Grafikobjekt der OnPaint-Methode verwenden sollte. –