3

UIの背景を透明に設定すると、その下にあるもの、つまりUIまたはコンテナーは表示されません。代わりに、フォームのデフォルトの背景、つまり最下部が表示されます。

この透明性の問題を回避するにはどうすればよいですか?

4

2 に答える 2

2

残念ながら、これは仕様によるものです。

http://support.microsoft.com/kb/943454

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

リンクには、回避策を示すコードがいくつかあります。

于 2012-07-18T16:50:36.767 に答える
0

Windowsフォームコントロールは、真の透過性をサポートしていません。透明なWindowsフォームコントロールの背景は、その親によって描画されます。

コントロールに透明な背景色を与えるにはこれにより、コントロールが透明な背景色をサポートできるようになります。

SetStyle(ControlStyles.SupportsTransparentBackColor, true);

this.BackColor = Color.Transparent;
于 2012-07-18T16:55:50.117 に答える