Получение UserControl для рисования под html div - PullRequest
0 голосов
/ 03 августа 2009

У меня есть набор элементов управления, полученных из System.Windows.Forms.UserControl, которые затем отображаются в браузере (только для Internet Explorer). Страница, на которой они находятся, имеет рамку (div), которую я хочу, чтобы элементы управления находились «под», но все они рисуются поверх нее.

Я видел страницы, утверждающие, что мне нужно сделать UserControls «без окон», и примеры того, как это сделать в VisualBasic или SilverLight, но ничего полезного для меня (я использую C ++ и C # здесь )

Итак, есть идеи?

1 Ответ

0 голосов
/ 03 августа 2009

Был хитрость, которая обычно использовалась для размещения элементов 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).

РЕДАКТИРОВАНИЕ: Обнаружено, почему это не сработало: "Другой метод, использующий атрибут ALLOWTRANSPARENCY элемента IFRAME, на самом деле относится к тому, чтобы сделать фон внутренней страницы IFRAME прозрачным, чтобы любой контент внутри IFRAME может иметь прозрачность. Однако этот режим меняет природу IFRAME и больше не служит нашей цели для блокировки оконных элементов управления . "

Исправлено использование альфа-фильтра для эффекта прозрачности вместо ALLOWTRANSPARENCY.

...