私は現在、C# Bitmaps und Graphics を使用して単純な画像マニピュレータをコーディングしています。私はcostum transparent elemtを使用していますが、うまくいきます。私の Draw-Method では、画像を設定するために描画してコントロールを更新します。
ImageAttributes attr = new ImageAttributes();
attr.SetColorKey(this.transpKey, this.transpKey);
Rectangle dstRect = new Rectangle(0, 0, this.image.Width, this.image.Height);
e.Graphics.DrawImage(this.image, dstRect, 0, 0, this.image.Width, this.image.Height, GraphicsUnit.Pixel, attr);
e.Graphics.Dispose();
ここで、いくつかのピクセルを消去する関数が必要です。Form を使用して BackgroindImage に描画すると、TransparencyKey-Property を使用してピクセルを「消去」できます。しかし、このプロタティは私のコスチューム コントロールには存在しません。そういうわけで「attr.SetColorKey(this.transpKey, this.transpKey);」を使ったのですが、問題があります。ピクセルを透明にするだけで、下にあるピクセルが表示されます。
ピクセルを残すのではなく、強制的に C# に置き換える方法を知っている人はいますか? または、私の問題の解決策を知っている人はいますか?
読んで、考えて、助けてくれてありがとう。
//編集: OK、「e.Graphics.CompositingMode = CompositingMode.SourceCopy;」を使用できることがわかりました。ピクセルが置き換えられるように設定します。しかし、その後、透明性は破壊されます。そして結果は同じです。何も消されていません。解決策はありますか?