2010-06-11 3 views
3

Je veux faire des graphiques WPF de base, c'est-à-dire des rectangles, des lignes, des cercles et du texte.Comment dessiner du texte et des formes dans wpf et C#?

Quand dois-je utiliser Drawing et quand dois-je utiliser DrawingVisual?

J'ai du code qui utilise Drawing et je les restitue à une DrawingImage et l'affiche dans un contrôle image. Est-ce la bonne façon? Je ne pouvais pas voir comment ajouter du texte à un dessin. J'ai eu du mal à le positionner aussi. Dois-je rendre à une toile?

J'ai du code qui utilise DrawingVisual et écrit dans un DrawingContext. C'est comme WinForms. Est-ce la façon recommandée?

Avez-vous des conseils de haut niveau sur les API à utiliser pour les graphiques et les étiquettes de base? Est-ce que les options fonctionnent sur Silver Light et Desktop?

+0

Graphiques 2D ou 3D? - Silverlight n'a pas de support 3D complet. –

+0

Graphiques 2D, par exemple, diagrammes de dispersion ou boîtes à moustaches avec des lignes, du texte et des formes. – user364981

Répondre

1

Vous aurez très probablement envie de simplement rendre sur un canevas. Si vous ajoutez des "formes" à un canevas, WPF gèrera tout le dessin pour vous.

Pour plus de détails, voir Shapes and Basic Drawing in WPF.

+0

Merci, je vais essayer Formes et Toiles. Puis-je positionner du texte sur la toile? L'application doit dessiner environ 1000 formes de base, par exemple des lignes, des cercles et des rectangles et quelques étiquettes. C'est une sortie graphique personnalisée. J'ai lu que les visuels étaient bons pour la vitesse, mais fonctionnent-ils dans la lumière argentée? Je suis à la recherche d'un moyen de rendre les graphiques et le texte avec une précision de position similaire à celle du dessin en winforms. – user364981

+0

@peterhu: Le texte fonctionne bien pour ceci - dans mon exp (WPF) cela fonctionne très bien pour ce nombre d'articles. –

2

Vous mentionnez dans votre commentaire que vous implémentez en fait des diagrammes de dispersion ou des graphiques similaires. Généralement, dans WPF, ceci est créé en formatant les contrôles existants, comme une vue de liste. Cela semble contre-intuitif, mais c'est beaucoup plus facile et plus puissant que de dessiner le vôtre.

This article by Charles Petzhold montre un nuage de points mis en œuvre de cette manière et va dans les moindres détails sur la façon de le rendre performant à plus de 10.000 points de données.

Questions connexes