2008-11-20 3 views
0

У меня есть контроль, VideoControl, который отображает видео с помощью DirectShow - он установлен как владелец IVideoWindow. У меня есть другой элемент управления AreaControl, который должен показывать пунктирный прямоугольник над видеоконтролем. AreaControl настроен на прозрачность с помощью SetStyle (ControlStyles.SupportsTransparentBackColor, true). Если я поместил AreaControl поверх любого другого элемента управления, он работает так, как ожидалось, показывая пунктирный прямоугольник над элементами управления, расположенными за ним. Но когда я помещаю элемент управления штриховым прямоугольником над видеоконтролем, AreaControl заполняется с помощью BackColor VideoControl.Как я могу сделать прозрачный контроль над видео DirectShow?

Что нужно сделать, чтобы отобразить видео с помощью AreaControl с наложенным на него пунктирным прямоугольником? Есть ли способ заставить VideoControl рисовать себя с видео, а не просто рисовать BackColor?

ответ

0

В конце концов, ответ на этот вопрос оказался для использования свойства RegionControl Region, поскольку нам не нужна частичная прозрачность.

1

Насколько я знаю, нет никакого способа сделать то, что вы хотите сделать напрямую. Проблема заключается в реализации прозрачного стиля элемента управления. Элемент управления с этим атрибутом стиля в основном просто рисует, что за ним делает его прозрачным. (На самом деле это совсем не прозрачно).

Единственное решение, которое приходит мне на ум, - использовать окно (форму) и поместить в него элемент управления. Форма может быть прозрачной, установив ее свойство Opacity на значение менее 1.0. Значение 0.0 будет полностью прозрачным (читай: Невидимый). Пунктирная граница должна быть полностью черной. С непрозрачностью f.e. 0.4 появится серый.

Кроме того, вам может быть повезло с TransparencyKey Property формы. Установка этого на белый может иметь желаемый эффект, но я не тестировал этот.

В любом случае Форма должна быть полностью без полей. Возможно, вам придется добавить код, чтобы изменить форму, когда перемещается видео форма.

Смежные вопросы