フォームの背景を透明にするにはどうすればよいですか? C#で可能ですか?
前もって感謝します!
フォームのBackColor
を珍しい色に設定できます(たとえばColor.Magenta
)次に、フォームのTransparencyKey
プロパティを同じ色に設定します。次に、FormBorderStyle
をNone
に設定します。
もちろん、それは迅速で簡単な解決策です。コントロールの端は醜いです、あなたが追加した新しいコントロールの背景色を変更し続けなければなりません(それらがボタンであるかそのようなものである場合)そして他の多くの問題のホスト全体。
それはあなたが何を達成したいかによります。それは何ですか?ウィジェットを一種のものにしたい場合は、もっと良い方法があります。丸みを帯びた角やカスタム背景が必要な場合は、もっと良い方法があります。そのため、TransparencyKey
が想定していたものと異なる場合は、さらに情報を提供してください。
フォームのコンストラクターに以下を入力します。
public Form1()
{
this.TransparencyKey = Color.Turquoise;
this.BackColor = Color.Turquoise;
}
注:この方法では、フォームをクリックすることができません。
更新:
非推奨: 方法:透明なWindowsフォームを作成する :
注:透過フォームはWindows 2000以降でのみサポートされているため、Windows 98などの古いオペレーティングシステムで実行すると、Windowsフォームは完全に不透明になります。 Opacityプロパティに設定された値に関係なく。
Winformで透明な背景を取得する簡単な解決策は、次のようにOnPaintBackgroundメソッドを上書きすることです。
protected override void OnPaintBackground(PaintEventArgs e)
{
//empty implementation
}
(base.OnpaintBackground(e)が関数から削除されていることに注意してください)