UIの背景を透明に設定すると、その下にあるもの、つまりUIまたはコンテナーは表示されません。代わりに、フォームのデフォルトの背景、つまり最下部が表示されます。
この透明性の問題を回避するにはどうすればよいですか?
UIの背景を透明に設定すると、その下にあるもの、つまりUIまたはコンテナーは表示されません。代わりに、フォームのデフォルトの背景、つまり最下部が表示されます。
この透明性の問題を回避するにはどうすればよいですか?
残念ながら、これは仕様によるものです。
http://support.microsoft.com/kb/943454
WinFormsの透過的なコントロールは、他のコントロールではなく、親に対して透過的です。WinFormsの透明性は、真の透明性よりもカモフラージュに似ています。透過的なコントロールでは、フォームを通してその背後にあるコントロールを実際に確認することはできません。親に、「透明な」コントロールに独自の背景を描画するように要求します。これが、透明なコントロールがその背後にあるフォームを表示し、他のコントロールを覆い隠す理由です。
リンクには、回避策を示すコードがいくつかあります。
Windowsフォームコントロールは、真の透過性をサポートしていません。透明なWindowsフォームコントロールの背景は、その親によって描画されます。
コントロールに透明な背景色を与えるにはこれにより、コントロールが透明な背景色をサポートできるようになります。
SetStyle(ControlStyles.SupportsTransparentBackColor, true);
this.BackColor = Color.Transparent;