2012-03-16 9 views
1

Windows.Formsを使用してGUIを作成するXNAプロジェクトがあります。私たちのGUIは左パネルと右パネルで構成されています。彼らは両方の上に置かれたイメージを持っています(それをパネルイメージと呼ぶ)。それらの画像には画像が付いたボタンがあります。今度は、パネル画像がパネルを完全に覆わない。今私たちがやりたいことは、パネル画像を見るだけなので、パネルを非表示または透明にすることです。下の画像で、私は透明/不可視にしたいものを丸で囲みました。プロジェクトの上部に表示されているように、すでに透明に見えますが、それはXNAシーンのバックグラウンドと混じっているからです。パネルが地面の上にある底部では、パネルがパネル画像よりもどのように伸びているかを見ることができます。だから、どのように私はそれらの部品を見えない/透明にすることができるか知っていますか?XNAウィンドウのフォームトランスフォーム/インビジブルからバックグラウンドパネルを作成するにはどうすればよいですか?

いいえ、パネルの色をColor.Transparent、Magenta(XNA透過色)にするのは面倒です。どんなインプット/アドバイスも大歓迎です。

 this.pnlLeftSide.BackgroundImage = global::Referenceator_UI.Resources.LeftBar; 
     this.pnlLeftSide.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; 
     this.pnlLeftSide.Controls.Add(this.btnScreenShot); 
     this.pnlLeftSide.Controls.Add(this.btnScale); 
     this.pnlLeftSide.Controls.Add(this.btnMove); 
     this.pnlLeftSide.Controls.Add(this.btnRotate); 
     this.pnlLeftSide.Controls.Add(this.btnSelect); 
     this.pnlLeftSide.Location = new System.Drawing.Point(0, 0); 
     this.pnlLeftSide.Name = "pnlLeftSide"; 
     this.pnlLeftSide.Size = new System.Drawing.Size(197, Screen.PrimaryScreen.WorkingArea.Height); 
     this.pnlLeftSide.Dock = DockStyle.Left; 
     this.pnlLeftSide.BackColor = controlColor; //this what we want invisible/transparent 

-ThankあなたStackOverflowのコミュニティ

Example of my problem

+0

あなたのパネルは大きすぎますか?それを小さくする:) –

答えて

1

があなたのパネルのRegionプロパティを設定してみてください:ここで

はパネルをセットアップするコードです。必要なRegion個のオブジェクトを手動で(可視ポリゴンを記述する行を列挙して)作成するか、透明カラーキーで画像をRegion(簡単にgoogled - https://stackoverflow.com/questions/886968/how-do-i-convert-an-images-transparency-into-a-regionなど)に変換する方法を使用できます。あなたのパネルの形状が複雑すぎるとは思われないので

は、手動の方法以下のRegionを作成することができます:あなたは、このメソッド(それが動作する場合でも)とシャープなエッジを得るでしょう

using(var gp = new System.Drawing.Drawing2D.GraphicsPath()) 
{ 
    // Here goes series of AddLine() calls. 
    // You must 
    // gp.AddLine(0, 0, leftPanel.Width, 0); 
    // ... 
    gp.CloseFigure(); 
    return new Region(gp); 
} 

注意を。 XNAを使ってすべてのGUIをレンダリングすることを検討してください。

関連する問題