2009-06-21 3 views
1

まず、純粋なNETで再作成しようとしているもののイメージを示します。 フォームのみの不透明度

Image

は私が情報を表示するウィンドウ「インベントリ」、青不透明ウィンドウをある残された唯一の事を、再作成しました。

不透明度プロパティを使用すると、そのフォームのすべてに不透明度がありますが、画像には不透明度がありません。

不透明度をフォーム上でのみ作成するにはどうすればよいですか?

答えて

1

プロパティはフォーム上にのみ存在するため、そこに含まれているコントロールではオーバーライドできません。

少し透明な背景画像が、あなたが望む効果を与えるかもしれないと思った - しかし、私はそれを試しただけで、うまくいかないようでした。

+0

は、透明の背景画像を行う

using System.Drawing.Drawing2D; private void Form1_Paint(object sender, PaintEventArgs e) { var hb = new HatchBrush(HatchStyle.Percent50, this.TransparencyKey); e.Graphics.FillRectangle(hb, this.DisplayRectangle); } 

待機ヘルプは、フォームの背景色にフェードする透明性の原因となります。私の記憶が私に失敗していない限り。 – Phillip

+0

@Philip - おそらく。私は簡単なテストをして、期待通りに動作しませんでした。これには道があるかもしれませんが、すぐには分かりません。 – ChrisF

+0

私はあなたの努力のためにあなたの答えをupvotedし、最近答えがない場合はそれを受け入れたものとしてマークしますが、私はこれがWinForms/WPF –

0

これが役立つかどうかわかりませんが、私はWPFを使用していないと考えることができるのは、フォームのTransparencyKeyとbackcolorを使用することだけです。 TransparencyKeyがデフォルトのコントロールまたはグレーとして設定されていないことを確認してください。フォームの背景色が赤色であるかどうかを確認してください。部分的な透明性を探していると、WPFを使用する必要があります。個人的には、実際のフォーム上でWPFで不透明度を試したことはありませんので、同じ結果が得られるかもしれませんが...

EDIT:WPFは同じ条件を引き起こします。フォームの下にあるすべてのコントロールは、フォームで透明になります。おそらく彼らはフォームのプロパティに固有のものだからです。

0

あなたはこれを使用することができます:私が覚えていれば、あなたが...さようなら