Punkt hinzufügen auf Leinwand
Ich bin Programmierung in Microsoft Visual Studio 2010 Express für Windows Phone. Ich muss noch ein Punkt auf einen Canvas
, aber ich kann nicht...
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 sagt:
Fehler 2 Argument 1: cannot convert from 'System.Windows.Punkt' zu 'System.Windows.UIElement'
Meine Frage ist: wie füge ich einen Punkt auf einer Canvas
?
Die
Point
Klasse repräsentiert nicht einen visuellen Punkt, aber ist nur ein Satz von Koordinaten, die Sie verwenden, um zu definieren, wo dein Punkt angezeigt werden soll.
InformationsquelleAutor Anatoly | 2012-01-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus deinem code-snippet, ich nehme an, Sie versuchen, zeichnen Sie eine Kurve. Um dies zu tun, können Sie Einblick in
GraphicsPath
. Statt zeichnen von einzelnen Punkten, können Sie die Punkte mit Koordinaten, die Sie verbinden Sie durch Linien. Dann, in Ihrem code, können Sie eineGraphicsPath
mit derAddLine
Methode.Diese könnte dann gezogen werden, auf eine bitmap, zum Beispiel.
BEARBEITEN
Beispiel (nicht getestet):
Andere Möglichkeit wäre die Verwendung der WPF
Path
Klasse, das funktioniert über das gleiche, ist aber ein echter UI-element, das Sie hinzufügen können, um den Kindern eineCanvas
.BEARBEITEN
Leute haben darauf hingewiesen, dass der obige code ist Windows Forms-code. Nun, hier ist was Sie tun können in WPF:
Die Idee ist gut, aber das ist WinForms code.
dies ist nicht eine Frage des Visual Studio-version Sie verwenden. System.Die Zeichnung ist Teil der .NET-Framework. VS 2010 dauert eine Weile, um asynchron laden Sie die Assemblys, die Sie hinzufügen können, als Referenz. Warten Sie einige mehr, und Sortieren Sie die Liste nach Namen.
Ja, aber nicht wirklich egal, oder? Sie können immer noch
GraphicsPath
und ziehen Sie es in eine bitmap, die dann zeigen Sie auf einer Leinwand, richtig? 🙂Ich habe bearbeitet meine Antwort so, dass es auch eine WPF-Lösung.
InformationsquelleAutor Thorsten Dittmar
Wenn es " nur einen einzigen Punkt, den Sie hinzufügen möchten, Sie können hinzufügen, ein winziges Rechteck oder eine ellipse auf der Leinwand.
Wenn Sie wollen eine Menge von Punkten oder ein paar Punkte, viele Male, ich schlage vor, Sie erstellen Sie ein array von pixel-Daten (Farben) und schreiben Sie diese auf eine WriteableBitmap
InformationsquelleAutor Erno de Weerd
Den
Point
Sie verwendet werden, ist nicht einUIElement
aber ein struct haben, verwenden Sie bitteLine
statt.Du auf die Idee...
Bearbeiten
geändert:
lne.X2 = 10, lne.X2 = 11
es ist nur möglich, wenn Sie versuchen, fügen Sie die gleiche Zeile zweimal, fügen Sie bitte lne Zeile = new Zeile(); block nicht vor.
seltsam, aber diese funktionieren nicht 🙁
bitte entfernen Sie alle anderen code und verwenden Sie den code, den Sie geschrieben haben, fügen Sie es Geladen Veranstaltung Ihrer Hauptseite. auch ich war falsch unter der Annahme 0 Größe Punkt funktionieren könnte, ändern Sie bitte lne.X2 = x ----> lne.X2 = x+1
InformationsquelleAutor Sonosar
Als pro den Fehler, die Kinder der
Canvas
Kontrolle muss sein-Derivaten derSystem.Windows.UIElement
Klasse:System.Windows.Point
ist nicht. Das zu erreichen, was Sie tun, Sie wäre am besten, auf der Suche in die Verwendung der geometrie in WPF. Sehen hier für einen Artikel auf, wie dies zu tun.Ein Punkt ist nur eine Linie, nur ziemlich kurz.
InformationsquelleAutor Samuel Slade
Versuchen, das hinzufügen einer ellipse
InformationsquelleAutor jcvegan