質問

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

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

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

役に立ちましたか?

解決

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と混同しないでください)。

編集:動作しなかった理由が見つかりました:&quot; IFRAME要素のALLOWTRANSPARENCY属性を使用する他の手法は、実際にはIFRAMEの内部ページの背景を透明にすることです。 IFRAME内のコンテンツは透明にすることができます。ただし、このモードはIFRAMEの性質を変更し、ウィンドウコントロールをブロックするという目的を果たしなくなります。&quot;

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top