WPF的Windows 7主题?

有什么办法让WPF应用程序看起来像在Windows 7上运行,即使它运行在XP上? 我正在寻找一些可以粘贴的主题。我知道Codeplex上的主题项目( http://www.codeplex.com/wpfthemes ),但是它缺less对DataGrid支持,极其需要。 我在想也许Windows 7的主题只是一个简单的端口,或者已经存在于某个文件中。 你有任何信息(即使这是坏消息)将不胜感激。

更新

使用@Lars Truijens的想法,我能够获得主要控件的Windows 7的外观,但不幸的是,它不工作的WPF工具包DataGrid控制,我需要。

DataGrid看起来像Aero主题一样

Windows XP看起来DataGrid

DataGrid 应该像这样

Windows 7外观的DataGrid

所以,如果有人有任何想法,我仍然在寻找解决这个问题的方法。 也许有人已经构build了涵盖WPF工具包控件的Aero主题的扩展? 再次,你有任何信息是非常感激。

更新2 – 问题解决!

为了使Aero主题与WPF Toolkit控件一起工作,您只需添加第二个Aero字典,以便您的App.xaml现在应该如下所示。

 <Application.Resources> ... <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="/PresentationFramework.Aero;component/themes/Aero.NormalColor.xaml" /> <ResourceDictionary Source="pack://application:,,,/WPFToolkit;component/Themes/Aero.NormalColor.xaml" /> ... </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Application.Resources> 

另外,我build议closuresDataGrid控件中的网格线(因为它们看起来很可怕 ):

 <DataGrid GridLinesVisibility="None" ...> 

WPF在所有Windows版本中都附带了标准的Windows主题。 例如,您可以在Windows XP上安装Aero主题(使用Vista和Windows 7),步骤如下:

  1. 将PresentationFramework.Aero添加到您的应用程序的参考列表中作为要求
  2. 编辑你的App.xaml

由此

 <Application.Resources> <!-- Your stuff here --> </Application.Resources> 

对此

 <Application.Resources> <ResourceDictionary> <!-- Put your stuff here instead --> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="/PresentationFramework.Aero;component/themes/Aero.NormalColor.xaml"/> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Application.Resources> 

资料来源: http //mrpmorris.blogspot.com/2008/05/using-vista-aero-theme-in-xp-wpf-apps.html

下面的其他select。 确保将相应的程序集作为需求添加到应用程序的参考列表中。

 <ResourceDictionary Source="/PresentationFramework.Aero;component/themes/Aero.NormalColor.xaml"/> <ResourceDictionary Source="/PresentationFramework.Classic;component/themes/Classic.xaml"/> <ResourceDictionary Source="/PresentationFramework.Royale;component/themes/Royale.NormalColor.xaml"/> <ResourceDictionary Source="/PresentationFramework.Luna.Homestead;component/themes/Luna.Homestead.xaml"/> <ResourceDictionary Source="/PresentationFramework.Luna.Metallic;component/themes/Luna.Metallic.xaml"/> <ResourceDictionary Source="/PresentationFramework.Zune;component/themes/Zune.NormalColor.xaml"/> 

除了Lars的回答和DanM的更新之外:

部署时,您必须将aero Dll添加到安装目录。

您可以通过转到添加到引用并设置CopyLocal=True的PresentationFramework.Aero的属性来完成此操作。 然后,你将不得不去使用你正在使用的任何部署工具(我喜欢WIX …)并将其添加到已部署文件的列表中。