Pergunta

Eu tenho um monte de controles derivados de System.Windows.Forms.UserControl, que são então a ser exibidos em um navegador (somente Internet Explorer). A página que está em tem uma borda (a div) que eu quero que os controles para ir 'em', mas todos eles empate em cima dela.

Eu vi páginas, alegando que o que eu preciso fazer é fazer os UserControls 'janelas', e exemplos de como fazê-lo em VisualBasic ou no Silverlight, mas nada útil para mim (estou usando C ++ e C # aqui )

Assim, todas as idéias?

Foi útil?

Solução

Houve um truque que costumava ser comum para colocar divs sobre elementos nativos no IE. Você colocar um iframe transparente com nada nele sob a div que você está tentando levantar;

<!-- windows forms garbage here -->

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

Isto iria empurrar sobreposição em uma nova camada DirectX (não devem ser confundidas com a camada do navegador, ou seja, índice z).

EDIT: Encontrado por que ele não fez trabalho: "A outra técnica, que usa atributo allowtransparency do elemento IFRAME, na verdade pertence a fazer o fundo da página interior do IFRAME transparente, de modo que qualquer conteúdo dentro do IFRAME pode ter transparência. no entanto, este modo muda a natureza do IFRAME e já não serve o nosso propósito para bloqueando controles em janelas . "

A correção é usar um filtro de alfa para o efeito de transparência em vez de allowtransparency.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top