0

System.Windows.Forms.UserControl から派生した一連のコントロールがあり、それらはブラウザーに表示されます (Internet Explorer のみ)。それらが含まれているページには、コントロールを「下」に配置したい境界線 (div) がありますが、それらはすべてその上に描画されます。

UserControls を「ウィンドウレス」にする必要があると主張するページと、VisualBasic または SilverLight でそれを行う方法の例を見てきましたが、私にとっては何の役にも立ちません (ここでは C++ と C# を使用しています)。

それで、何かアイデアはありますか?

4

1 に答える 1

0

IE でネイティブ要素の上に div を配置する際に一般的だったトリックがありました。上げようとしている div の下に、何も入っていない透明な iframe を配置します。

<!-- windows forms garbage here -->

<iframe id="underlay" src="javascript:false" frameborder="0" style="Alpha(style=0,opacity=0)"></iframe>
<div id="overlay"></div>

これにより、オーバーレイが新しい directx レイヤーにプッシュされます (ブラウザー レイヤー、つまり z-index と混同しないでください)。

編集:機能しなかった理由が見つかりました: 「IFRAME 要素の ALLOWTRANSPARENCY 属性を使用する他の手法は、実際には IFRAME の内部ページの背景を透明にすることに関係しているため、IFRAME 内のすべてのコンテンツを透明にすることができます。しかし、これはモードは IFRAME の性質を変更し、ウィンドウ コントロールをブロックするという私たちの目的を果たせなくなります。」

ALLOWTRANSPARENCY の代わりに透明効果にアルファ フィルターを使用することで修正されます。

于 2009-08-03T01:41:30.693 に答える