J'ai une application qui crée un fichier journal de l'activité de l'utilisateur comme les connexions, les déconnexions, les requêtes, les soumissions, les verrous, etc. Le fichier journal enregistre le début et la fin de chaque activité. Plusieurs connexions, requêtes, etc. simultanées peuvent avoir lieu via différents threads (le thread qui a traité la demande est également enregistré avec les entrées de journal de début et de fin). .
Je cherche un moyen d'afficher graphiquement l'activité en utilisant c #. Je pense aux threads répertoriés en bas à gauche (je peux savoir combien en parcourant le fichier journal) avec des barres à droite des threads tracées sur une chronologie qui représentent l'activité. Étant donné que chaque thread n'est pas occupé en permanence, certaines activités peuvent ressembler à de simples points au lieu de barres en fonction de la durée contenue dans le journal.
Idéalement, je serais en mesure de zoomer la période sur une section de problème et les barres d'activité seraient re-tracées sur la nouvelle période.
Dois-je utiliser des graphiques pour dessiner/tracer les barres d'activité ou y a-t-il une meilleure approche? Je n'ai jamais utilisé de composant curseur ou trackbar, donc je ne sais pas lequel serait le meilleur pour "zoomer" l'activité tracée.
Je suis le plus familier avec la programmation Form UI, mais ouvert à tout. Toutes les recommandations ou suggestions sont les bienvenues.
Merci.
Je crois qu'il existe des contrôles de diagramme de Gantt pour .Net que vous pouvez utiliser pour cela. La seule partie difficile est peut-être d'en trouver une qui fonctionne sur la courte période de temps que vous avez.
Vous pouvez étudier d'autres interfaces graphiques pour des idées de zoom. Je suppose que Microsoft Project a un moyen de zoomer et de dézoomer sur son Gantt. Un contrôle de curseur est une autre option (comme Google Maps et MS Office). Vous pourriez avoir un outil Zoom (qui, bien sûr, n'affecte que la dimension X). Vous pouvez fournir une miniature d'une chronologie à petite échelle dans un volet étroit en haut de la fenêtre, avec un cadre déplaçable montrant la plage et la position du diagramme de Gantt principal. En supposant que vous ayez une barre de défilement horizontale pour le panoramique, la molette Ctrl-roulette devrait être un raccourci expert pour le zoom. Enfin, en plus des méthodes de manipulation directe, vous pouvez souhaiter avoir des zones de texte modifiables à mise à jour instantanée montrant la plage actuelle, permettant à l'utilisateur d'entrer des heures spécifiques (par exemple, lorsque l'application a été connue pour planter) pour passer.
Un élément d'interface utilisateur que vous pourriez réutiliser ou dessiner est un graphique audio utilisé sur de nombreux programmes d'édition audio (voir l'image ci-dessous).
Ils utilisent généralement la molette de la souris (et + / - boutons) pour effectuer un zoom avant (axe X) et vous permet de spécifier une région vers laquelle effectuer le zoom en faisant glisser de gauche à droite, la souris vers le bas étant le début de la sélection, la souris vers le haut étant la fin de la sélection. Ils ont également une copie plus petite de toute la gamme ci-dessous montrant la section sélectionnée ou visible.