2009-04-10 19 views
1

(私の最初の質問!)なぜ誰かが、winformsでレイヤーの透明な領域が透過性を失って、winformsレイヤー化されたときの透明度の問題

これらのフォームは、モーダルダイアログから起動されたモーダルダイアログとして表示されます。 (2深度)このアプリケーションでは、モーダルダイアログがシャドウボックスエフェクトに表示されるため、画面全体が半透明の黒で塗りつぶされ、モーダルフォームが表示されます。

最初のモーダルフォームは角が丸くなります。最初のモーダルフォームは美しく表示されます。 2番目のモーダルダイアログが最初のモーダルダイアログ(完全透明の黒レイヤーと丸みのあるコーナー)からトリガーされたとき元のモーダルダイアログのクライアントの直角は覆われていません。

誰も私にこのことが起こっている理由を教えてもらえますか、私は修正を出す必要があります。 ありがとう!

+0

必ずダブルバッファリングをオフにしてください。 –

+0

ありがとう、私はこれを試してみます。私はそれをするとアニメーションがちらつくと思う...... – bperreault

答えて

0

ご協力いただきありがとうございます。判明したように、答えは非常に簡単でした。私は今、異なるシナリオでこれらのコントロールを実行するときにそれを実現しました。

これらのモーダルダイアログが表示されると、画面は黒色の50%透過矩形で覆われ、フォームはモーダルに上に表示されます(これは恥ずかしいですが、少なくともこのスレッドは完了します)。

第2のモーダルダイアログも同じように表示され、オーナーフォーム上には50%透明な黒が表示されます。だから、50%の透明度が50%以上のレイヤーに透明化されたときに何が起きるのかがわかりました。 !!!!!

とにかく、オペレータエラーです。私はちょうど丸みを帯びたコーナーパネルの領域を透明な黒で覆う方法を考えなければならず、問題は消えてしまいます。

0

ダイアログを別々のスレッドで表示するか、2つ目のスレッドだけを表示してみてください。

これは難しいかもしれませんが、thisスレッドも読んでください。

+0

ありがとう。私はこれを試してみる。 – bperreault

関連する問題