2012-09-27 4 views
2

나는 aforge를 사용하고 있습니다 : wpf에서 videosourceplayer, 제가 곤경에 처한 것은 wfor에서 aforge : VideoSourcePlayer를 사용하려면 WindowsFormsHost 태그에 넣어야합니다. WindowsFormsHost를 사용하고 싶지 않은 경우 다른 선택이 있습니까? wpf에서 aforge videosouceplayer 사용하기

<WindowsFormsHost Margin="5,5,5,201" Name="windowFormsHost" Panel.ZIndex="0"> 
     <aforge:VideoSourcePlayer x:Name="videoSourcePlayer" Height="200" Margin="12,30,0,0" Width="360"> 
</aforge:VideoSourcePlayer> 

어떤 도움에 감사하다

, 감사합니다.

답변

3

WinForms 요소는 WPF Elemenets과 다르게 그려 지므로, 별도의 hWND에 배치해야하므로 (아래 링크 참조) 불행히도 없습니다.

WPF 창에서 WinForms를 사용할 때 Airspace Problem이 발생했기 때문에 질문을하지 않았지만 대안을 찾고 있다고 생각합니다.

.NET 4 이상을 사용하는 경우 위 코드에서 지정한 ZIndex 속성은 무시되며 ;-) WPF 창 내의 WinForm 요소는 다른 모든 항목 위에 항상 그려집니다 (자세한 내용은 이것에 관하여 여기에서 : Layout Considerations for the WindowsFormsHost Element).

왜 우리는 결국 우리 자신의 플레이어를 만들었는지, WinForm 요소를 시도하고 레이아웃하는 것은 매우 힘들었습니다 (스크롤 기능이 필요했고 WinFormEl을 부분적으로 사라지게하는 쉬운 방법을 찾을 수 없었습니다. VideoSourcePlayer의 조정). 당신이 .NET 4.5 일 경우 here을 읽을 수

당신의 Z- 색인 (및 기타 레이아웃 속성)을 통해 좀 더 제어 할 수 있습니다 (이것은 상기와 같은 조입니다하지만 .NET 4.5)

주 : isRedirected & CompositionMode 속성 (위 링크에서 말했듯이, WPF 내에서 WinForms를 적절하게 레이아웃 할 수 있어야합니다.) 4.5 릴리즈에서 제외되었지만 찾을 수없는 블로그 게시물을 읽은 것을 기억합니다. 이것에 대한 공식적인 진술 (가장 안전한 방법은 그것을 시도하는 것입니다 :-)).

+0

나쁜 소식이지만 도움을 많이 주셔서 감사합니다 !!! – Huy

1

나는 똑같은 문제가있었습니다. 당신은 Aforge Framework를 좋아하지만 WindowsFormsHost를 좋아하지 않습니다. 결국 여기서 해결책을 찾았습니다.

http://seaflection.wordpress.com/2012/01/29/getting-image-stream-using-webcam-in-wpf-asynchronous-ui-updating/

사가르 Mohite은 단순히 그들이 이미지 요소보다는 VideoSourcePlayers으로 표현 될 수 있도록 올바른 형식으로 비트 맵을 변환 할 수있는 Compatability.dll을 만들어 문제를 극복했다. 또한 DispatcherObject가 필요하지만 소량의 코드가 링크에 모두 포함되어 + dll을 다운로드하면 Aforge 비디오 피드에 WPF 컨트롤을 오버레이 할 수 있습니다!

관련 문제