2009-10-18 2 views
1

Windows 7의 Device Stage를 밀접하게 반영하는 개발중인 응용 프로그램이 있습니다. Device Stage에는 기본 배너 아래에 ListViewItem으로 구체화 된 동작이 포함 된 ListView가 있습니다.WPF에서 WindowsFormsHost의 컨트롤에 SetWindowTheme() 사용?

내 WPF 응용 프로그램에서 WinForms ListView를 호스팅하기 위해 WindowsFormsHost를 사용하여 SetWindowTheme()을 사용하고 Windows Vista/7 스타일링을 적용 할 수있었습니다.

그러나이 방법은 작동하지 않으며 Windows Forms에서 사용할 때와 동일한 효과를 얻지 못합니다.

WPF의 ListView에서 어떻게 Windows 7 모양을 얻을 수 있습니까? 솔직히 말해서이 앱에 WPF를 계속 사용하는 것이 엉덩이에 너무 고통 스럽기 때문에 나는 사용자 정의 스타일을 만들려하지 않습니다.

감사합니다. :)

답변

3

그냥 다음 줄을 추가합니다

[DllImport("uxtheme.dll", CharSet = CharSet.Unicode)] 
public static extern int SetWindowTheme(IntPtr hWnd, String pszSubAppName, String pszSubIdList); 

.ctor 
{ 
    System.Windows.Forms.Integration.WindowsFormsHost.EnableWindowsFormsInterop(); 
    System.Windows.Forms.Application.EnableVisualStyles(); 

    SetWindowTheme(MyControl.Handle, "Explorer", null); 
} 
0

분명히 주위를 파고 나면, 유일한 대답은 실제로 WPF에서 사용자 정의 컨트롤을 만드는 것으로 보입니다.