2010-11-23 5 views
3

내 응용 프로그램은 모든 창은 다음과 같은 매개 변수 설정 (XAML)을 가지고 있음을 의미합니다 사용자 정의 창 디자인을 가지고 있습니다 그냥, 창 투명성에 관해서 WPF 창 투명성 동안

가, WPF 알려진 문제가 있고 윈폼 구성 요소를 호스팅 : 하위 창 중 하나는 플래시 구성 요소를 표시하는 데 필요한, 플래시 ActiveX 구성 요소는 XAML thrugh 호스팅 ~하지 않는다 상자에서 꺼내주세요. Flash 구성 요소를 보려면 AllowsTransparency를 "False"로 설정해야합니다. 그렇지 않으면 플래시 구성 요소가 표시되지 않습니다.

는 윈도우의 투명도 (일반 L & F)을 유지하기 위해, 나는이 코드 조각을 수정 한 : http://blogs.msdn.com/b/adam_nathan/archive/2006/05/04/589686.aspx

 IntPtr hwnd = new WindowInteropHelper(window).Handle; 

     // Set the background to transparent from both the WPF and Win32 perspectives 
     window.Background = Brushes.Transparent; 
     HwndSource.FromHwnd(hwnd).CompositionTarget.BackgroundColor = Colors.Transparent; 

     MARGINS margins = new MARGINS(margin); 
     DwmExtendFrameIntoClientArea(hwnd, ref margins); 

그래서 모든 것이 지금 큰 노력하고, 내가 XP에 검사 시작할 때까지. 분명히 위의 코드는 XP에서 작동하지 않습니다. DLL (dwmapi.dll)은 Vista DLL이기 때문입니다.

질문은 XP에서 동일한 결과를 얻을 수 있는지 여부와 그 경우 어떻게됩니까?

나는이 코드 조각을 변경하려고 시도했다 : How to create a semi transparent window in WPF that allows mouse events to pass through 또는 유사한 다른 예이지만, 나는 어떤 투명도도 달성 할 수 없었다.

조언을 주시면 감사하겠습니다.

+0

나는 똑같은 것을 찾고 있었지만 플래시가 보이고 coudn't가 적절한 답을 찾을 수 있도록 WPF의 투명도를 찾고 있었지만 제외했다. 그러나 당신에게 감사한다. 매우 자세한 질문과 링크를 게시했다. WPF를 투명하게 만들 수 있었고 FLASH 파일을 올바르게 표시 할 수있었습니다. –

답변

1

나는 내가하고 싶은 일을 할 수 없다고 생각한다 ... 투명성과 관련된 시각적 문제를 피하기 위해 XP에서 정사각형 창을 만들었다.