web-dev-qa-db-ja.com

C#-透明なフォーム

私は現在、1つを除いてすべての望ましい効果を持つフォームを持っています。現在のフォームは、上部のメニューストリップと、その下にラベルと画像ボックスを含むパネルで構成されています。フォームを起動すると、メニューストリップは表示されません。ユーザーが「Alt」ボタンを押している間のみ表示され、同じように消えます。

パネルには、背景が透明な背景画像(.PNG)があります。 borderstyleをnoneに設定すると、この画像がフォームのメインレイアウトになります。ここで問題となるのは、フォームのパネルの下にまだ白/灰色がかった背景があることです。

ここで私の質問は、フォームを透明にして、フォームの背景が下にある画像だけでなく、パネル上の画像がメインレイアウトになるようにする方法です。パネルを100%表示したいので、Opacityプロパティを使用したくありません。

13
Citroenfris

WinFormsを想定しています。

これは可能ですが、できませんエッジを半透明にします。

これを試して。

フォームで、次のプロパティを設定します。

BackColor = Color.Lime;
TransparencyKey = Color.Lime;

これにより、フォームが透明になります。次に、backgroundimageを設定します。

BackgroundImage = myImage:

Color.Limeでもあるbackgroundimageの部分も透明になります。

Formsの境界線も削除したい場合は、次の行も追加します。

FormBorderStyle = FormBorderStyle.None;
29

バックカラーを選択するときは注意してください。テキスト、画像、およびコントロールの色とは異なる背景色を選択します。つまり、フォームで使用することのない色を選択し、フクシア/ライムが最良の選択になると思います。背景色のコードを選択するには、以下を参照してください。

this.BackColor = Color.Fuchsia;

次に、そのコードを使用して、その色を透明にします。

TransparencyKey = Color.Fuchsia;
3
kislay kumar