Ich bin neu in der grafischen Programmierung mit C#. Gestern habe ich ein neues Projekt (WPF) gestartet. Es gibt ein Polyline-Objekt, das ich mit den Koordinaten, die ich berechne, auf dem Bildschirm bewegen muss. Ich weiß nicht, wie ich das Objekt bewegen und so etwas wie eine Animation machen soll. Mit der Maus nach unten möchte ich diese Methode starten Move()
danach in den While-Zyklus gehen und wenn die Bedingung abgeschlossen ist (end == true)
Ich möchte den Zyklus zu beenden und die Animation abzuschließen. Und während ich im Zyklus bin, ist meine Idee, meine Polyline mit langsamen Bewegungen zu bewegen. Ich habe versucht, Move()
in einen Thread zu setzen und Thread.Sleep(...);
zu verwenden, aber ich konnte gerade die Endposition nicht ganz von der Polylinie sehen. Ich habe versucht, es in new Thread(new ThreadStart(Move));
... und this.Dispatcher.BeginInvoke
zu setzen, der Effekt war der gleiche. Können Sie mir bitte sagen, wie ich diese Bewegung machen kann?C# eine Polylinie verschieben
public void Move()
{
bool end = false;
while (!end)
{
double x = lastPosX;
double y = lastPosY;
double a = y1 - y;
double b = x - x1;
double c = -x * y1 + x1 * y;
double u, v;
GetC(out u, out v);
if (y1 < lastPosY)
{
GetCoordinates(ref u, ref v);
}
if (u > width || v > height)
{
gameEnd = true;
}
lastPosX = u;
lastPosY = v;
p.Points.Remove(p.Points.First());
p.Points.Add(new Point(u, v));
}
}
Ihr Code ist verwirrend. Wie setzt man "end" auf "true", um die Schleife zu verlassen? Außerdem verwenden Sie viele Variablen, die wir nicht kennen. – user1234567