2

重複の可能性:
PictureBox の問題

いくつかのカスタムコントロールTabPageをホストする があります。PictureBoxここで行っているのは、ユーザーがピンをクリックして情報を取得できるいくつかの IC パッケージを描画することです。ユーザーは、このピクチャボックスを複数タブページに追加し、タブページ内で移動できます。

私の問題は、このピクチャボックスが互いに重なり合っていない場合にのみ透明になることです。下の画像では、タブページに追加された 2 つの画像ボックスが表示されています。タブページの背景は青色です。実際、色は関係ありません。ピクチャボックスには、タブページに対して透明な未描画領域があります。

ここに画像の説明を入力

しかし、このピクチャボックスを別のピクチャボックスの上に移動するとすぐに、透明ではなくなります。

ここに画像の説明を入力

Imageこれは、私が描画 する raw を生成するコードです。

    //Setting up image area
    Image = new Bitmap(requiredImageWidth, requiredImageHeight, PixelFormat.Format32bppArgb);
    Image.MakeTransparent();

残りはデフォルト設定で、他には何も変更していません。この動作の原因は何だと思いますか?

4

1 に答える 1

6

この記事から、これがこの動作の原因です:

WinForms の透明なコントロールは、他のコントロールに対してではなく、親に対して透明です。WinForms の透明性は、真の透明性というよりカモフラージュに似ています。透明なコントロールでは、フォームを通してその背後にあるコントロールを実際に見ることはできません。親に、「透明な」コントロールに独自の背景を描画するように要求します。これが、透明なコントロールがその背後にあるフォームを表示する理由ですが、他のコントロールを覆い隠します。

ここにあなたの問題に対する受け入れられた答えがあります(A PictureBox Problem)

于 2012-08-27T09:15:59.700 に答える