開発中C#アプリケーションWindows Mobile。 OnPaintでカスタムコントロールを持っています。をオーバーライドして、ユーザーがポインタで移動するイメージを描画します。それはイメージですイメージを表示するカスタムコントロール
protected override void OnPaint(PaintEventArgs e)
{
Graphics gxOff; //Offscreen graphics
Brush backBrush;
if (m_bmpOffscreen == null) //Bitmap for doublebuffering
{
m_bmpOffscreen = new Bitmap(ClientSize.Width, ClientSize.Height);
}
gxOff = Graphics.FromImage(m_bmpOffscreen);
gxOff.Clear(Color.White);
backBrush = new SolidBrush(Color.White);
gxOff.FillRectangle(backBrush, this.ClientRectangle);
//Draw some bitmap
gxOff.DrawImage(imageToShow, 0, 0, rectImageToShow, GraphicsUnit.Pixel);
//Draw from the memory bitmap
e.Graphics.DrawImage(m_bmpOffscreen, this.Left, this.Top);
base.OnPaint(e);
}
imageToShow:私自身のOnPaintメソッドはこれです。
は、それがこのようにイベントさらにonResizeに初期化されますrectImageToShow:
rectImageToShow =
new Rectangle(0, 0, this.ClientSize.Width, this.ClientSize.Height);
this.Topとthis.Leftは、カスタムコントロール内の画像を描画するTOPLEFTコーナーです。
私はそれがうまくいくと思いますが、画像を移動すると決してすべてのコントロールをきれいにしません。私はいつも前の図の一部を見る。
私は間違っていますか?
ありがとうございました!
このファイルは次のファイルで使用できます。 e.Graphics.Clear(Color.White); – VansFannel