C#で「Windows フォーム アプリ」を作る場合にフォームの背景を透明(透過)にする方法について備忘録的に投稿します。
フォームの背景透過
Visual Studioで「 Windowsフォーム アプリ」を作る場合に、フォームの背景を透明にして背景を透過にする方法です。
やり方は簡単で、例えば、labelコントロールを貼り付けたフォームのLoadイベントに次のコードを追加します。
private void Form1_Load(object sender, EventArgs e)
{
this.TransparencyKey = this.BackColor;
}
実行結果がこんな感じ。(背景はデスクトップの壁紙です)labelコントロールは表示されてフォームの背景が透明になります。
フォームのプロパティ画面でも「TransparencyKey」は設定できますが、BackColorが一覧から選択できないので、コードで設定を行います。
Opacityプロパティは全体が透明になる
同じ様にフォームの透明度を設定する「Opacity」は、効果が全体的になるので使い辛い部分があります。
例えば、同じフォームのLoadイベントに次のようなコードを追加した場合。
private void Form1_Load(object sender, EventArgs e)
{
this.Opacity = 0.8;
}
右辺を0にすると透明になりますが、実行結果が見せ難くなるので、あえて0.8にしてあります。
実行すると、こんな感じ。
labelコントロールまで透明になってしまうため、フォームだけを透明化したい場合には「TransparencyKey」プロパティを使った方が簡単に透明化ができます。
まとめ
「Windows フォーム アプリ」でフォームを透明化する際には「TransparencyKey」プロパティを設定することで、簡単に背景透過したフォームに変更することができます。
C#を使って、背景透過フォームを作りたい方の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。