Получение UserControl для рисования под html div
-
10-07-2019 - |
Вопрос
У меня есть набор элементов управления, полученных из System.Windows.Forms.UserControl, которые затем отображаются в браузере (только для Internet Explorer). Страница, на которой они находятся, имеет рамку (div), которую я хочу, чтобы элементы управления находились «под», но все они рисуются поверх нее.
Я видел страницы, утверждающие, что мне нужно сделать UserControls «без окон» и примеры того, как это сделать в VisualBasic или SilverLight, но ничего полезного для меня (я использую C ++ и C # здесь ) р>
Итак, есть идеи?
Решение
Был хитрость, которая обычно использовалась для размещения элементов div над нативными элементами в IE. Вы помещаете прозрачный iframe, в котором ничего нет, под div, который вы пытаетесь поднять;
<!-- 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).
EDIT: Обнаружил, почему это не сработало: " Другой метод, использующий атрибут ALLOWTRANSPARENCY элемента IFRAME, на самом деле относится к тому, чтобы сделать фон внутренней страницы IFRAME прозрачным, чтобы любой контент внутри IFRAME может иметь прозрачность. Однако этот режим меняет природу IFRAME и больше не служит нашей цели для блокировки оконных элементов управления . & Quot;
Исправление заключается в использовании альфа-фильтра для эффекта прозрачности вместо ALLOWTRANSPARENCY.