1

我正在开发一个应用程序,它与 Windows 7 的 Device Stage 非常相似。在 Device Stage 中,在主横幅下方有一个 ListView,其中包含体现为 ListViewItems 的操作。

在我的 WPF 应用程序中,我使用 WindowsFormsHost 来托管 WinForms ListView,以便我可以SetWindowTheme()在其上使用并对其应用 Windows Vista/7 样式。

但是,这不起作用,并且无法达到在 Windows 窗体中使用时的相同效果。

如何在 WPF 中的 ListView 上实现 Windows 7 外观?我不希望创建自定义样式然后应用它,因为坦率地说,继续为这个应用程序使用 WPF 实在是太痛苦了。

谢谢!:)

4

2 回答 2

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); 
}
于 2010-05-07T00:06:06.393 回答
0

显然,在四处挖掘之后,唯一的答案确实似乎是在 WPF 中创建一个自定义设计的控件。

于 2009-10-19T17:35:13.387 回答