コードダンプすみません、これらは機能が.NETユーザーコントロールは:Sizeプロパティは
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);
}
ので、制御変化の大きさは、それが新しいを反映するためにオフスクリーンビットマップを再作成する場合、ユーザーコントロール内にあるResizeイベントに不正な値を与えますサイズを変更してイメージを再描画します。
ただし、コントロールのサイズをすばやく変更してもビットマップで埋められない場合は、右または下にギャップがあります。
私はかなりC#の新機能です。間違ったことをしているか、間違ったタイミングでサイズの値を読み込んでいる可能性があります。何か案は?
多くのありがとうございます。私はSetStyleではなくDoubleBufferプロパティを使用しました。また、私は最初にOnPaintメソッドの一部として提供されているグラフィックスオブジェクトを使用することを認識しませんでした。 –