2010-11-29 4 views
0

애니메이션을 사용하여 사용자 정의 showdialog 팝업 (일부 TextBlock 및 Button과 함께 테두리 컨트롤)을 표시합니다. iam이 Animation을 실행하면 WinFormHost를 취한 후 경계 컨트롤과 기타가 WinFormHost 뒤에 있습니다. 그것에 대해 어떤 라운드가 있습니까?WindowsFormHost 컨트롤을 맨 위에 올 수 있습니까?

답변

3

WPF 및 Windows Forms 콘텐츠가 동일한 창을 공유하도록하려면이 문제를 해결할 방법이 없습니다.

WPF는 Direct3D를 통해 렌더링되지만 Windows Forms는 궁극적으로 이전 GDI32 렌더링 메커니즘을 기반으로하는 GDI +를 사용합니다. Windows 자체는이 두 가지 기술을 사용하여 창 영역을 렌더링하는 방법을 제공하지 않습니다. Direct3D가 소유하고 렌더링 한 HWND (WPF에서 사용)와 Windows에서 소유하고 렌더링 한 다른 HWND 양식. 이 HWND는 그 사이에있는 창에서 공간을 조각하여 겹칠 수 없습니다. 당신이 WPF 중복 원하는 및 Windows 콘텐츠를 양식하는 경우

는 그렇게 할 수있는 유일한 지원 방법은 별도의 최상위 창에 넣어하는 것입니다 - 윈도우 는 데스크톱 수준에서 Win32 및 Direct3D의 내용을 중복 지원한다. 픽셀 별 투명도를 사용하여 직사각형이 아닌 창을 만들 수 있습니다 (WPF 또는 Windows Forms 중 하나). 따라서 WPF 앱에서 모든 윈도우 테두리를 해제하고 배경을 투명하게 만들 수 있습니다. 투명도를 활성화 한 경우 Windows Forms 윈도우와 동일한 위치에 해당 윈도우를 배치 할 수 있습니다 이제 WPF 컨텐트를 Windows Forms 컨텐트 위에 올릴 수 있습니다.

말할 필요도없이, 이것은 지루한 일입니다. 그러나 불행히도 WPF 콘텐트가 Windows Forms 콘텐트 위에 실제로 필요하다면 WPF 콘텐트를 별도의 창에 넣어야합니다.

관련 문제