Question

je suis d'écrire une application Compact Framework pour Windows Mobile 6.5. La demande sera vendue dans le marché Windowsphone. Pour ce faire, je dois soutenir les différentes tailles d'écran et résolutions ... mais comment dois-je faire cela? Y at-il une meilleure pratique ou si? J'utilise principalement des commandes standard, mais une image de fond dans le Mainform ... dois-je stocker dans une résolution et montrer de façon dynamique, selon l'appareil mes de l'application se exécute?

Merci pour vos suggestions et aide

Thomas

Était-ce utile?

La solution

Je vais commencer à dire c'est un sujet controversé.

Mon opinion personnelle est que vous devez identifier la résolution sensiblement différentes / tailles gammes et de fournir une couche d'interface utilisateur différente, vous pouvez échanger quand vous détectez un redimensionnement qui passe d'une plage à l'autre (commutation dynamique pourrait ne pas être même une exigence pour vous - dans ce cas, vous vérifiez juste au moment du chargement). Cette approche n'a évidemment pas de sens si les plages vous identifier sont très limités et semblables les uns aux autres, comme dans la même gamme de votre application devrait pouvoir redimensionner décemment.

Essayant d'aborder toutes les résolutions possibles avec la même couche d'interface peut sembler une bonne idée, mais il peut être une recette pour un désastre. Vous pourriez le faire fonctionner, mais vous aurez très probablement fin avec une pelote de ficelle, avec un groupe d'instructions IF-ELSE ou SWITCH regardant la taille des pixels, le redimensionnement des contrôles et déplacer des choses.

Si vous pensez à ce sujet, Google Maps (pour un, mais pensez à toute application iPhone) ne sert pas la même interface utilisateur sur mobile et sur votre navigateur de bureau et ainsi de suite. Si c'est la différence de taille dont nous parlons (mobile VS résolutions comme bureau), vous devrez rouler différentes couches de l'interface utilisateur selon ma suggestion ci-dessus.

Le Saint Graal est la soi-disant mise en page liquide - WPF pourrait aider à ce sujet, mais puisque vous êtes sur le cadre compact qui est exclu

.

J'ai récemment posé une question similaire - vous pouvez avoir un coup d'oeil ici si vous voulez lire des opinions différentes .

Autres conseils

Ceci est un toughie. J'ai eu des résultats raisonnables avec le plan faible effort suivant. (Ceci est orienté Winform, d'ailleurs)

Le plus gros problème est avec les résolutions qui sont petits que prévu. Par conséquent, créez vos écrans aussi petits que possible et accorder une attention particulière à vos paramètres d'ancrage et d'amarrage. Lors de l'affichage de chaque forme il réglé sur plein écran et les propriétés d'ancrage doivent faire un travail raisonnable d'afficher les choses d'une manière saine d'esprit.

Cela ne commence à paraître stupide si la résolution est beaucoup plus grande que prévu.
Notez que vous pouvez trouver la taille de l'écran de la plate-forme actuelle via l'appel Screen.PrimaryScreen.Bounds.

J'ai récemment construit une petite application, juste pour essayer des choses. Je avais besoin pour afficher une image d'arrière-plan, donc je ne pouvais pas utiliser les commandes intégrées comme étiquette et ainsi de suite parce qu'ils ne prennent pas en charge arrière-plan transparent.

I fini dessin toute l'interface dans le cas de la peinture de la forme, en utilisant GDI +.

Gestion des différentes résolutions d'écran se sont révélées être assez simple: l'interface est prototypé pour un écran régulier de 96dpi (le plus petit), toutes les tailles sont mis à l'échelle en utilisant un facteur calculé comme 96 / actual_dpi. Vous pouvez récupérer le paramètre DPI réel de l'écran en utilisant le code trouvé (un peu vieux, mais travaille toujours). Je puis testé l'application de toutes les résolutions fournies par les émulateurs et n'a révélé aucun problème.

caveat. I « Wasted » la partie inférieure de l'écran pour que rien était nécessaire spécial pour traiter les écrans carrés et orientations paysage / portrait

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top