web-dev-qa-db-fra.com

Comment rendre une application avec plusieurs contrôles utilisateur différents plus unifiée?

Nous avons une application où nous combinons plusieurs contrôles utilisateur différents dans une seule fenêtre principale. Environ 3 des contrôles sont développés en dehors de notre groupe, nous n'avons donc vraiment pas beaucoup de contrôle sur leur apparence. Le shell principal de notre application utilise AvalonDock afin que les utilisateurs puissent réorganiser la mise en page comme bon leur semble.

Le problème est que, parce que trois des contrôles ne sont pas sous notre contrôle direct, l'application ne se mélange pas très bien.

Je me demandais donc ce que nous pouvions faire pour que l'application soit plus cohérente?

5
Ashley Grenon

Voilà une très bonne question.

Option 1

Ce que je voudrais faire, c'est d'appuyer sur le gros bouton rouge d'ARRET D'URGENCE et d'arrêter complètement le projet. Je voudrais ensuite convoquer les sponsors du projet et le (s) chef (s) de projet à une réunion et expliquer pourquoi ce projet présente un risque élevé d'échec en ce qui concerne les aspects d'utilisabilité des projets.

Lors de la réunion, je demanderais qu'un concepteur d'interaction et un architecte de l'information soient embauchés dès maintenant. Je voudrais également leur donner une semaine pour obtenir une image claire de tous les aspects du projet et leur faire présenter les résultats de leur travail au plus tard dans deux semaines. Ensuite, le projet devrait redémarrer avec l'équipe d'utilisabilité embauchée en tant que responsable de l'expérience utilisateur de l'application entière, peu importe où dans le monde les contrôles utilisateur sont construits. La cohérence est la clé.

Voilà ce que je veux faire.

Option 2

Si ce qui précède n'est pas possible pour des raisons organisationnelles ou politiques (ou si votre travail est en jeu pour convoquer une réunion), vous devez créer une équipe interfonctionnelle. Même si vous ne contrôlez pas ce que les autres développent, vous pouvez toujours décider en collaboration quel style utiliser. Comme vous le mentionnez dans votre question, pour que les "contrôles utilisateur se sentent plus unifiés", tous les développeurs doivent être unifiés dans le sens de la réalisation d'un objectif commun. Dans cet objectif se trouve une grande partie de l'expérience utilisateur de l'application. Vous savez également que l'application que vous construisez en collaboration ne sera jamais meilleure que les tâches que votre public cible d'utilisateurs parviennent à accomplir lors de la publication de l'application. Unifiez les équipes, décidez d'un guide de style commun, répétez les wireframes et les maquettes ensemble et faites travailler toutes les équipes comme une seule.

2
Benny Skogberg

À mon avis, ce n'est pas un problème facile à résoudre, mais comme vous utilisez WPF (Windows Presentation Framework), vous pouvez faire quelques options ici.

  1. Créez un thème générique pour tous les contrôles courants comme les blocs de texte et les boutons (par exemple, Style TargetType = {x: Bouton statique}). Cela permettra aux autres contrôles d'utiliser le même style au niveau racine. Cependant, cela ne fonctionnera pas si tous les contrôles utilisent des styles avec des touches différentes.
  2. Hébergez chacun des autres contrôles dans un ContentControl affichant ainsi les contrôles avec la même "bordure chromée" autour. Peut-être jouer avec de l'espace Panel.ZIndex et Margin pour le faire ressembler à la bordure chrome fait partie du contrôle.

Le thème générique pourrait être ajouté dans le dictionnaire de ressources de l'application afin que tous les contrôles puissent y accéder.

Si un contrôle utilise un thème clair et un autre en utilisant un thème sombre, alors si les développeurs sont devenus paresseux, ils ont probablement codé en dur certaines couleurs pour le texte, donc le simple changement du style racine peut ne pas le résoudre.

La meilleure façon d'aller de l'avant ici est de créer un style pour que votre contrôle soit utilisé comme contrôle racine et d'utiliser les meilleures pratiques afin que les contrôles soient stylés facilement ou s'ils doivent être utilisés en spécifiant une clé dans le dictionnaire de ressources, puis utilisez une dénomination standard comme "TitleForegroundBrush" plutôt quelque chose de trop spécifique comme "MyControlDarkBrush". Une fois cela fait, peut-être avec une persuasion douce, vous pourriez obtenir ces deux autres commandes à bord avec votre style commun. La meilleure partie ici est que si vous ou une autre équipe devez créer un nouveau contrôle, ils peuvent simplement continuer avec du XAML propre et votre thème de style.

1
lifeofmle