Ajouter un Point à la Toile
Je code dans Microsoft Visual Studio 2010 Express pour Windows Phone. J'ai besoin d'ajouter un point sur un Canvas
, mais je ne peux pas...
for (float x = x1; x < x2; x += dx)
{
Point poin = new Point();
poin.X = x;
poin.Y = Math.Sin(x);
canvas1.Children.Add(poin);
}
Studio dit:
Erreur 2 Argument 1: impossible de convertir de 'Système.De Windows.Point' de 'Système.De Windows.UIElement'
Ma question est: comment puis-je ajouter un point sur un Canvas
?
Le
Point
classe ne représente pas un visual point, mais est simplement un ensemble de coordonnées que vous pouvez utiliser pour définir où votre point doit être affiché.OriginalL'auteur Anatoly | 2012-01-18
Vous devez vous connecter pour publier un commentaire.
De votre extrait de code je suppose que vous essayez de tracer une courbe. Pour ce faire, vous pouvez regarder dans
GraphicsPath
. Au lieu de dessiner des points individuels, vous pouvez utiliser les points de coordonnées, ce qui vous vous connectez par le biais de lignes. Puis, dans votre code, vous pouvez créer unGraphicsPath
à l'aide de laAddLine
méthode.Cela pourrait être tiré sur une image bitmap, par exemple.
MODIFIER
Exemple (non testé):
Un autre moyen serait d'utiliser WPF
Path
classe, qui serait la même, mais est un réel élément de l'INTERFACE utilisateur que vous pouvez ajouter à la enfants deCanvas
.MODIFIER
Ont signalé que le code ci-dessus est Windows Forms code. Eh bien, voici ce que vous pouvez faire dans WPF:
L'idée est bien, mais c'est WinForms code.
ce n'est pas une question de version de Visual Studio que vous utilisez. Système.Le dessin est de la partie .NET Framework. VS 2010 prend un certain temps pour charger de manière asynchrone les assemblées, vous pouvez l'ajouter comme référence. Attendre un peu plus et de trier la liste par nom.
Oui, mais n'a pas vraiment d'importance, n'est ce pas? Vous pouvez toujours utiliser
GraphicsPath
et dessiner une image bitmap, puis vous montrer sur une toile, à droite? 🙂J'ai édité ma réponse à ce qu'il y a aussi un WPF solution.
OriginalL'auteur Thorsten Dittmar
Si c'est " juste un seul point que vous souhaitez ajouter, vous pouvez ajouter un tout petit rectangle ou une ellipse sur la toile.
Si vous souhaitez définir un grand nombre de points ou un couple de points à plusieurs reprises, je vous suggère de créer un tableau de données de pixels (couleurs) et à écrire à ceux d'un WriteableBitmap
OriginalL'auteur Erno de Weerd
La
Point
vous avez utilisé n'est pas unUIElement
mais un struct, veuillez utiliserLine
à la place.Vous voyez l'idée...
Modifier
modifié:
lne.X2 = 10 à lne.X2 = 11
il est possible que, si vous essayez d'ajouter la même Ligne deux fois, s'il vous plaît ajouter la Ligne lne = Ligne(); pour bloquer pas avant que.
étrange, mais cela ne fonctionne pas 🙁
veuillez retirer tout autre code et utiliser le code que vous avez posté, l'ajouter à l'événement Chargé de votre page d'accueil. aussi je me suis trompé en supposant que 0 taille de point, s'il vous plaît changer le lne.X2 = x ----> lne.X2 = x+1
OriginalL'auteur Sonosar
Que par l'erreur, les enfants de la
Canvas
de contrôle doivent être dérivés de laSystem.Windows.UIElement
classe:System.Windows.Point
ne l'est pas. Pour atteindre ce que vous faites, vous, le mieux serait de regarder dans l'aide de la géométrie dans WPF. Voir ici pour un article sur la façon de le faire.Un point est juste une ligne, juste assez court.
OriginalL'auteur Samuel Slade
Essayez d'ajouter une ellipse
OriginalL'auteur jcvegan