Pourquoi les applications WPF semblent-elles différentes entre Windows 7 et Windows 8 et cela peut-il être corrigé?
Je suis vraiment surpris que cette question ne semble pas avoir été encore posée... si elle en a, mais je ne pouvais pas trouver des excuses.
Ok, donc mon ordinateur de travail a été mis à niveau à partir de Windows 7 à Windows 8. À mon horreur absolue, mon Application WPF est différent à plusieurs égards... par les différents, je veux dire pire, la plus laide, contrôles qui ne sont pas alignés correctement, etc. Voici un exemple:
Windows 7:
Windows 8:
Windows 8 problèmes (seulement à partir de cette image):
- Mal barre de titre, y compris les boutons (Réduire, Fermer, etc.)
- Mauvaise taille de Police dans la barre de titre
- Mal FontWeight dans les en-têtes (Windows 7 SemiBold paramètre = Windows 8 paramètre Gras)
- Icône (ou texte) pas alignés dans la barre de titre
- Icône dans la barre de titre est très floue
- Mauvais Remplissage et/ou les paramètres de Marge de l'espacement des éléments sur la gauche
- Mauvais Remplissage et/ou les paramètres de Marge de réduire la zone de texte Hauteurs de droit
- "Caché" sélection par défaut de la couleur sur les objets de la gauche n'est plus caché
- L'arrière vers l'avant de Case à cocher
- Images sur certains Boutons sont très floues
Donc, ma question est: est-ce
Pourquoi faire des Applications WPF look différent entre Windows 7 et Windows 8 et cela peut-il être fixé?
Pour clarifier cela, je suis pas après une liste des différences entre WPF sur les deux systèmes d'exploitation. Je suis aussi pas après des correctifs pour les différents points énumérés ci-dessus. Je voudrais que quelqu'un pour expliquer pourquoi ces Isu un aspect différent, par exemple. quelle est l'origine de ces différences. J'ai aussi entendu parler de certains paramètres du système, en WPF qui me permettrait de rendre le PC rendre l'application comme si elle était sur Windows 7mais je ne sais pas comment véridique qui a été.
Mise à JOUR >>>
@AndrasSebö aimablement fait remarquer, il y a un StackOverflow question nommé Thème Windows 7 pour WPF?qui corrige un problème similaire pour Windows XP. Malheureusement, il ne semble pas avoir d'effet sur Windows 8. Existe-il des utilisateurs Microsoft qui fait savoir quelles sont les différences ont été mises en œuvre à l'origine de ce problème? Ou n'importe qui?
Mise à JOUR 2 >>>
Ok, donc après quelques essais, je commence à penser que ce problème est pas liées à Windows Thème. En utilisant le code fourni dans @Gusdor de réponse, j'ai essayé de changer le thème de Aero
et il n'y a pas de différence visible... cela m'a fait réfléchir. J'ai ensuite changé pour Luna
pour tester ce code et cela a fonctionné.
Par "travail", je veux dire que le Thème Windows changé, mais les contrôles de l'INTERFACE utilisateur, ou, plus précisément, le mauvais Padding
et Margin
est resté. J'ai ensuite essayé de changer le Thème de Luna
en utilisant le code XAML de la méthode mentionnée par @AndrasSebö et c'est la même chose... le ScrollBar
s était différent, j'ai donc pu voir que le Thème a changé, mais le problème demeure.
Alors maintenant, je pense que cela pourrait avoir quelque chose à voir avec le fait que c'est une nouvelle marque de l'ordinateur sur lequel je travaille... pourrait-il y avoir une dll ou d'un paramètre que je dois installer? Je suis vraiment juste deviner ici - j'ai toute de Microsoft .NET Framework est installé à la version 4.5.1 que je suis sur Windows 8.1.
C'est un cauchemar absolu que je n'ai pas le temps d'aller et de fixer chaque vue de cette grande application. S'il vous plaît aider si vous le pouvez.
source d'informationauteur Sheridan
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez WPF sans personnalisé (explicite) de style il va utiliser standard de windows 7 aero style. Dans le cas de windows 8, c'est différent (aero2).
Si vous souhaitez vous assurer que votre application s'affiche même sur windows 7 et sur windows8 ainsi je vous recommande de créer un style personnalisé qui vous permet de définir la marge, les rembourrages, les polices, etc par vous-même.
Le problème (comme décrit dans les autres réponses), c'est que WPF choisit un thème par défaut déterminé par la version du système d'exploitation.
Vous devez remplacer ce comportement. CET ARTICLE décrit comment:
Votre problème peut être lié à cette
Il y a actuellement un bug dans le WPF ruban de la bibliothèque, ce qui provoque le thème Windows 8 ne pas s'appliquer si un ribbonwindow est utilisé.
En outre, Windows 7 et 8 utilisent simplement des styles différents pour leurs Contrôles, tels que les zones de texte.
Lors de l'élaboration de pour de multiples plates-formes, ne serait-ce que Windows, vous devez être conscient que les tailles, les marges externes et internes de changement. Au lieu de valeurs absolues, vous devez laisser le contrôle de dicter leur besoin d'espace en évitant paramètre explicite les hauteurs ou largeurs complètement.