Thème Windows 7 pour WPF?

y a-t-il un moyen de faire croire à une application WPF qu'elle tourne sur Windows 7 même si elle tourne sur XP? Je cherche un thème que je peux coller. Je suis au courant du projet themes sur Codeplex (http://www.codeplex.com/wpfthemes), mais il manque de support pour DataGrid, qui est quelque chose que j'ai gravement besoin. Je pensais que peut-être le thème Windows 7 serait juste un port facile, ou existe dans un fichier quelque part déjà. Toutes les informations que vous avez (même si ce sont de mauvaises nouvelles) serait très apprécié.

mise à Jour

en utilisant L'idée de @Lars Truijens, J'ai pu obtenir la recherche Windows 7 pour les contrôles principaux, mais malheureusement cela n'a pas fonctionné pour la boîte à outils WPF DataGrid contrôle, ce dont j'ai besoin.

DataGrid ressemble à ça avec le thème Aero

Windows XP-look DataGrid

DataGrid devrait ressembler ce

Windows 7-look DataGrid

je suis Donc toujours à la recherche d'une solution à ce problème si quelqu'un a des idées. Peut-être que quelqu'un a construit une extension au thème Aero qui couvre les contrôles de la boîte à outils du FPF? Encore une fois, toute information que vous avez est très appréciée.

mise à jour 2-Problème résolu!

pour que le thème Aero fonctionne avec les commandes WPF Toolkit, vous avez juste besoin d'ajouter un second dictionnaire Aero, donc votre application.XAML devrait maintenant ressembler à ceci.

<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>

aussi, je recommande de désactiver les lignes dans votre DataGrid contrôles (parce qu'ils regardent horrible):

<DataGrid GridLinesVisibility="None" ...>
37
demandé sur GSerg 2010-01-16 03:44:33

2 réponses

WPF est livré avec les thèmes standards de Windows sur toutes les versions de Windows. Par exemple, vous pouvez avoir le thème Aero (que Vista et Windows 7 utilisent) sur Windows XP avec les étapes suivantes:

  1. Ajouter PresentationFramework.Aero à votre application de liste de références comme il faut
  2. éditez votre application.xaml

de cette

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

de cette

<Application.Resources>
  <ResourceDictionary>
    <!-- Put your stuff here instead -->

    <ResourceDictionary.MergedDictionaries>
      <ResourceDictionary Source="/PresentationFramework.Aero;component/themes/Aero.NormalColor.xaml"/>
    </ResourceDictionary.MergedDictionaries>
  </ResourceDictionary>
</Application.Resources> 

Source: http://mrpmorris.blogspot.com/2008/05/using-vista-aero-theme-in-xp-wpf-apps.html

autres solutions ci-dessous. Assurez-vous d'ajouter l'assemblage correspondant à la liste de référence de votre application en tant que de besoin.

<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"/>
49
répondu Lars Truijens 2010-01-16 14:47:48

un ajout à la réponse de Lars et à la mise à jour de DanM:

lors du déploiement, vous devez ajouter l'Aero Dll au dir d'installation.

Vous pouvez le faire en allant dans les propriétés de PresentationFramework.Aero vous avez ajouté les références et la configuration de CopyLocal=True. Ensuite, vous devrez aller à n'importe quel outil de déploiement que vous utilisez (J'aime WIX...) et l'ajouter à la liste de fichiers déployés.

4
répondu GuYsH 2011-05-15 10:18:32