読者です 読者をやめる 読者になる 読者になる

C# Windows フォーム アプリケーションでフォームのクライアント領域を透明にする

C# Programming .NET Windows フォーム アプリケーション

タイトルバーと枠だけ残して,あとは透明なフォームを作りたい.

フォームのTransparencyKeyプロパティをいじってやればよい.

this.TransparencyKey = this.BackColor;

TransparencyKeyプロパティで指定した色が透明になる.BackColorプロパティはフォームのクライアント領域の背景色を表すので,上記コードによりフォームのクライアント領域が透明になる.
ただし,透明な領域をクリックしてもフォームのクリックイベントは発生せず,その下にあるウィンドウにクリックイベント通知が送信される.

ちなみに,タイトルバーや枠も含めてフォーム全体を半透明するには,以下のようにOpacityプロパティの値を変更すればよい.

this.Opacity = 0.5;

Opacityプロパティはフォームの不透明度のレベルを表しており,1.0で不透明,0.0で完全に透明となる.