Ce que les unités de mesure ne Silverlight et WPF utiliser?
Personne ne sait ce que les unités de mesure sont utilisées par Silverlight/PAM? Par exemple, si je crée un nouveau bouton et réglez sa hauteur de 150, de 150 pixels? les points? millimètres?
J'conception de l'ensemble de mes applications Adobe Illustrator avant de passer le code, et bien que j'essaye de mettre tout les dimensions dans mon fichier Illustrator, l'application Silverlight est généralement plus grande.
Vous devez vous connecter pour publier un commentaire.
MSDN de la documentation indique que la
FrameworkElement.Hauteur
de la propriété (pour Silverlight) se réfère à:Cependant, pour WPF il fait référence à:
Donc, pour répondre à votre question... pixels pour Silverlight, unités indépendantes du périphérique pour WPF.
Bien que dans théorie, 1 unité de WPF est de 1/96e de pouce, c'est souvent pas le cas dans la pratique.
C'est généralement le cas lors de l'impression. Mais c'est rarement le cas sur l'écran. La raison pour cela est que Windows presque toujours en connaît la véritable résolution de l'imprimante, mais presque jamais en connaît la véritable résolution d'un écran.
Par exemple, j'ai trois écrans connectés à mon ordinateur. Windows pense qu'ils ont tous une résolution de 96 pixels par pouce. En réalité ils ne le sont pas. Deux d'entre eux ont une résolution de 101 pixels par pouce, et une a une résolution de 94 pixels par pouce. (Pourquoi? Parce que Windows n'a aucun moyen de travailler le vrai résolutions pour lui-même, et je n'ai pas dit cela. La fiction qu'ils ont tous la même taille en pixels est proche de la vérité, et s'avère être une pratique de la fiction.)
Alors quand j'ai créer, par exemple, un Rectangle en WPF avec la Largeur et la Hauteur à la fois ensemble à 96, la taille du Rectangle dépend de l'écran sur lequel il apparaît. Windows pense que tous les 3 écrans ont une résolution de 96 pixels par pouce, et donc ça va rendre le rectangle comme étant 96 pixels de haut et de large n'importe quel écran il apparaît. Cela va faire apparaître de 0,95 pouces de hauteur sur les deux écrans, et 1,02 pouces de hauteur sur la troisième.
Si dans la pratique, cela signifie que les unités dans WPF sur mon ordinateur ici sont soit 1/100e d'un pouce, ou 1/94e de pouce dans la pratique. (I. e., dans la pratique, la taille de 1 unité en WPF est exactement la taille de 1 pixel sur ma configuration particulière, n'importe comment grand les pixels se trouvent.)
Je pouvais changer. J'ai pu reconfigurer Windows - je pourrais dire la résolution réelle de tous les 3 écrans, auquel cas la valeur nominale et réelle de WPF tailles d'unité pourrait coïncider. Ou je pourrais vous mentir que je pouvais prétendre que j'ai 200 pixels par pouce écrans, auquel cas tout serait énorme...
Le problème fondamental est qu'il n'existe pas de méthode standard pour l'ordinateur de découvrir la véritable dimension de la physique des pixels sur l'écran, et très peu de personnes prennent la peine de le configurer à la main. (Et en fait, vous pouvez provoquer des problèmes lors de la configuration de "correct", parce que beaucoup de logiciels ne se comportent pas correctement lorsque vous faites). De sorte que la majorité de Windows ordinateurs n'ont pas de rapport physique tailles de pixel correctement à WPF - ils ne peuvent pas car ils ne savent pas.
Par conséquent, il n'y a pas de réponse fiable à la question 1 de l'unité dans WPF pouvait être à peu près n'importe quoi sur l'écran. (Dans la pratique, la plupart du temps, il s'avère être de 1 pixel, tout simplement parce que si vous ne dites pas Windows rien d'autre, il est par défaut en supposant que vos écrans ont des pixels qui sont 1/96e de pouce de hauteur, qui est le même que 1 WPF unité. Et pour la plupart des écrans de bureau, qui est en fait assez susceptible d'être une bonne estimation. Mais ce n'est pas universel. Sur les systèmes configurés avec ce que l'on appelait des "grandes polices" par exemple, vous trouverez un nominal de la résolution d'écran, et 1 WPF unité correspond à un peu plus de 1 physique des pixels d'environ 1,2 en fait.)
Avec les imprimantes, c'est beaucoup plus prévisible. Les imprimantes ne sont pas toujours en mesure de faire rapport de leurs résolutions correctement. Donc, si vous imprimez quelque chose qui est de 96 WPF unités de haut, vous pouvez être sûr qu'il sera de 1 pouce de haut.
La documentation se réfère à Pixels, cependant, ce sont les Pixels où il y a de 96 pixels par pouce. Une ligne de Largeur 96 lorsque l'affichage sur un 120 PPP affichage sera de 120 périphérique réel de pixels. De la même manière telle une ligne tracée sur une imprimante de sortie qui a une résolution de 600 DPI sera de 600 pixels de long.
Ils sont Appareil Unités Indépendantes.
Vous trouverez de plus amples explications ici.