Я использую библиотеку DirectShow.NET [http://directshownet.sourceforge.net/], и я использую ниже код для показа видеопотоков.Интерфейс IVideoWindow не отображает видеокадры должным образом в UserControl
videowindow.put_Owner(handle);
videowindow.put_WindowStyle(WindowStyle.Child | WindowStyle.ClipChildren);
videowindow.put_WindowState(DirectShowLib.WindowState.Show);
Примечание: Ручка System.Windows.Forms.UserControl ручки [this-> Handle]
Проблема заключается в том, что:
- На моем пользователь управления видеокадрами не отображаются должным образом: я вижу половину видеокадра, а другая половина вне экрана.
- Также, когда я масштабирую свой пользовательский контроль, кадры видеопотока не являются масштабированными.
Что может быть причиной этого? Как я могу это исправить?
Update:
Основываясь на римском Ответе Я добавил следующий код:
videoWindow.SetWindowPosition(this.ClientRectangle.Left,
this.ClientRectangle.Top,
this.ClientRectangle.Width,
this.ClientRectangle.Height);
И теперь я могу в состоянии видеть кадр видео в моем управлении прямоугольником пользователя должным образом ....
Вы устанавливаете 'IVideoWindow.SetWindowPosition'? Вы также несете ответственность за обновление, когда меняется макет вашего окна. –
Roman, напишите ваш комментарий в качестве ответа, я приму его. Спасибо, Роман Р. – Novalis