2016-03-20 8 views
-1

こんにちは、私は透明な背景で2つの画像を重ねようとしています。私はこれを行うにはのOnPaintメソッドを使用することができます聞いたので、私は2つの重なり合う透明な画像を描画するためのOnPaint

protected override void OnPaint(PaintEventArgs e) 
    { 
     System.Drawing.Graphics obj; 
     obj = this.CreateGraphics(); 
     int x = 0; 
     int y = 0; 
     System.Drawing.Point point = new Point(x, y); 
     obj.Clear(Color.White); 
     obj.DrawImage(System.Drawing.Image.FromFile(@"C:\Users\William\Documents\Sprites\Player\Male\Default\Light.png"), point); 
     obj.Dispose(); 
    } 

をしようとしたが、それの上に別のものを描画する方法イムはわからない、それが透明になる場合は、任意のヘルプはちょうど

+1

は 'OBJ = this.CreateGraphics()を交換してください!また、今すぐ処分しないでください!一番上の作品に別のイメージを描く__そのまま最初の絵を描いてみましょう__!また、OnPaintまたはPaintイベントでは、表面をクリアする必要はありません。通常、表面をクリアする必要があります。 – TaW

+0

それは私にエラーを与えましたが、古いものはまだ動作します – Will

+0

何のエラーがありましたか?あなたはまだ作成してはいけない、作成してはいけないe.Graphicsを処分していますか? – TaW

答えて

0

をにappriciatedされます最初のものの上に他の絵を描き、そのような:; `OBJ = e.Grpahics`によって`とあなたのチャンスはたくさん良く

e.Graphics.DrawImage(Image.FromFile(@"C:\Picture1.png"), point); 
e.Graphics.DrawImage(Image.FromFile(@"C:\Picture2WithTransparentBackground.png"), point); 
+0

それは完璧なおかげで働きます – Will

+0

まだ、あなたは 'this.CreateGraphics'を取り除き、__NEVER__をもう一度使ってください! – TaW

関連する問題