ビットマップにいくつかのアイテムを描画するコントロールがあります。
ビットマップのスクロールとパンに Microsoft ジェスチャ ライブラリを使用しています。
パンまたはスクロールを行っているときに、ビットマップがちらつきます。
OnPaint
スクロール/パン座標に応じた方法でビットマップの一部だけを描画しています。
サンプルコードは次のとおりです。
protected override void OnPaint(PaintEventArgs e)
{
using (Graphics g = e.Graphics)
{
if (!_painted)
{
// drawing items first time
InitilizeBitmap(g);
_painted = true;
}
Rectangle rec = new Rectangle(0, _bitmapLocation.Y, ClientRectangle.Width, ClientRectangle.Height);
using (Graphics gCached = Graphics.FromImage(_cachedBitmap))
{
gCached.Clear(BackColor);
gCached.DrawImage(_bmpControl, 0, 0, rec, GraphicsUnit.Pixel);
}
g.DrawImage(_cachedBitmap, 0, 0);
}
}
protected override void OnPaintBackground(PaintEventArgs e)
{
}
ちらつきを避ける方法はありますか?