2010-11-30 23 views
13

私は現在、1つを除くすべての希望の効果を持つフォームを持っています。現在のフォームは上部にあるメナストリップから構成され、その下にはラベルとピクチャボックスが含まれています。フォームが起動されると、menustripは表示されず、ユーザーが 'Alt'ボタンを押して同じ方法で消える間にのみ表示されます。C# - 透明なフォーム

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

私の質問は、パネル上のイメージがその下のフォームの背景色を持つイメージではなく、メインレイアウトになるようにフォームを透明にする方法です。私はパネルを100%可視にしたいので、Opacityプロパティを使用したくありません。

答えて

25

WinFormsを想定します。

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

これを試してください。フォームで

、次のプロパティを設定します。

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

これは、フォームが透明になります。

BackgroundImage = myImage: 

Color.Limeである背景画像の部分が透明取得します。そして、背景画像を設定します。

あなたもForms国境を取り除きたい場合は、同様に次の行を追加します。あなたは背景色を選択する時期

FormBorderStyle = FormBorderStyle.None; 
+0

は、これはトリックでした!迅速な返信と詳細な説明をありがとうございます。私はこれが簡単だとは信じられません!再度、感謝します。 – Citroenfris

+0

うれしい私は助けになることができます。私はアプリケーションのスプラッシュ画面を作ったときに同じことを一度やった。 –

3

は注意してください。あなたのフォームで使用することは決してない色を選択することを意味するあなたのテキスト、画像、および任意のコントロールの色とは異なるBackcolorを選択しました。フクシア/石灰が最良のchoice.Forバックカラーコードを選択すると思う:

this.BackColor = Color.Fuchsia; 

、その後コードすることを用いて透明にその色を作る:

TransparencyKey = Color.Fuchsia; 
+1

あなたは決して使用しない色を選ぶのですか? – nalply

+5

他の場所でその色を使用し、その色を 'TransparencyKey'に設定しているので、透明にもなります。天気の男が緑色のスクリーンの前で明るい緑色のスーツを着た場合のような並べ替え。 –

+0

yup cozフォームで使用する色を使用すると透明になります。テキストまたは画像も透明になります –