2009-12-31 3 views
3

간단한 WPF UserControl (모든 컨트롤이 수행 할 것입니다)을 만들고이를 Winform (ElementHost 사용)에 삽입합니다. 이 작동합니다. WPF 컨트롤은 WinForm에 내장되어 있으며 WinForm 컨트롤이 이동하는 것처럼 WPF 컨트롤이 함께 이동합니다. TranparencyKey를 BackColor와 동일한 값으로 설정하여 WinForm을 투명하게 변경하면 - 대신 WPF 컨트롤이 표시되지 않고 검은 색 사각형이 그 자리에 표시됩니다. - WinForm이 이동 된 경우 화면 주위를 클릭 한 다음 원래 위치에 WPF 컨트롤이 나타납니다 - 마치 WinForm에 의해 덮여있는 것처럼.투명한 winform 내부의 WPF 컨트롤이 표시되지 않습니다.

ElementHost의 속성을 변경하면 (예 : BackColorTransparent) 동작이 변경되지 않았습니다. WinForm의 BackColor와 TransparencyKey를 모두 Black으로 설정하면 검은 색 사각형 문제가 없지만 WinForm을 옮길 때 WPF 컨트롤이 원래 위치에 남아 있습니다.

이러한 문제는 Windows XP SP3 (우리의 대상 OS 임)에서는 발생하지만 Windows 2003에서는 발생하지 않음을 유의하십시오. (Vista 및 Windows 7에서는 확인하지 않았습니다).

WPF 컨트롤이 포함 된 투명한 Winform을 내부적으로 유지하면서도 정상적인 동작을 유지하는 방법에 대한 아이디어가 있으십니까?

+0

다른 그래픽 하드웨어를 사용하여 다른 XP 컴퓨터를 확인 했습니까? 이런 것들은 흔히 그래픽 드라이버 버그입니다. – Nir

+0

나는 또한이 문제에 부딪쳤고 솔루션에도 관심이 있었다. –

+0

다른 HW를 사용하는 2 대의 XP 컴퓨터에서 테스트를 한 결과 동일한 결과가 나타났습니다. 나는 이것이 HW와 관련이 없지만 WinForm & WPF Interop와 관련이 있다고 생각한다. –

답변

0

WPF 컨트롤에서 background 속성을 설정 했습니까? 기본적으로 부모 컨테이너로부터 상속받습니다. 존재하지 않으면 상위 컨테이너가이를 수행합니다. UserControl의 배경 속성을 흰색 또는 회색으로 설정하여 문제를 해결하십시오.

관련 문제