문제

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와 혼동되지 않음).

편집하다: "iframe 요소의 allertransparency 속성을 사용하는 다른 기술은 실제로 iframe 투명의 내부 페이지 배경을 만드는 것과 관련이 있으므로 iframe 내부의 모든 컨텐츠는 투명성을 가질 수 있습니다. 이 모드는 iframe의 특성을 변경하고 더 이상 창 컨트롤을 차단하기위한 목적을 제공하지 않습니다.."

수정은 allowtransparency 대신 투명성 효과를 위해 알파 필터를 사용하는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top