J'ai développé une application qui a fière allure sur mon ordinateur mais lorsque je l'installe sur d'autres ordinateurs avec des résolutions et des paramètres DPI différents, cela semble horrible. Les contrôles se chevauchent et c'est juste misérable. Quelqu'un at-il des suggestions sur la façon d'éviter cela?Problèmes WPF DPI
Répondre
Windows n'a aucun moyen de connaître le DPI natif (points par pouce) de votre écran, car il n'y a aucun moyen physique que l'écran puisse le signaler à l'ordinateur. Cela signifie que beaucoup de gens auront des paramètres DPI, qui ne sont pas les mêmes que leurs moniteurs DPI. Alors, comment cela s'intègre-t-il dans l'ensemble "WPF utilisé (pixels indépendants du périphérique)" - débat? Eh bien, pour que WPF calcule la taille d'un DIP, il lui faut 1 information et 1 invariant: il doit connaître la résolution que vous utilisez (pas un problème) et vous devez définir votre écran sur son DPI natif. Si votre écran n'est pas défini sur le DPI natif, les pixels peuvent être plus grands ou plus petits qu'ils ne le devraient, par rapport à la taille physique de l'écran.
Il est assez difficile d'expliquer vraiment, un coup d'oeil à ces messages de blog: http://www.odewit.net/ArticleContent.aspx?id=WpfDpiScaling&lang=en&format=html http://blogs.microsoft.co.il/blogs/tomershamam/archive/2007/11/30/wpf-is-dpi-depended.aspx http://www.wpflearningexperience.com/?p=41 (vers le bas en ce moment :()
En général, vous devez faire de votre interface utilisateur évolutive avec des trucs comme les barres de défilement, contrôles de pagination et les goûts, pour éviter les chevauchements :)
Merci. Ouais, les contrôles qui se chevauchent ne peuvent pas vraiment être corrigés avec les contrôles de pagination, etc. Je vais certainement regarder dans les articles, cependant. :) – Joe
Plus d'informations nécessaires je pense ... Par exemple, comment gérez-vous des contrôles dans votre application? Les étalez-vous en utilisant un positionnement exact via Canvas? – Grokys
Toutes les interfaces utilisateur ont été créées dans Expression Blend. Ils sont tous dans un contrôle Grid. Devrais-je me rééquiper pour utiliser le positionnement exact? – Joe