Я новичок в графическом программировании на C #. Вчера я начал один новый проект (WPF). Есть объект Polyline, который мне нужно перемещать по экрану с координатами, которые я вычисляю. Я не знаю, как переместить объект и сделать что-то вроде анимации. При наведении мыши я хочу запустить этот метод Move()
, после этого перейти в цикл while, а когда условие будет выполнено (end == true)
, я хочу завершить цикл и завершить анимацию. И пока я нахожусь в цикле, моя идея состоит в том, чтобы двигать полилинию медленными движениями. Я пытался вставить Move()
в поток и использовать Thread.Sleep(...);
, но я мог видеть только конечную позицию, а не весь путь полилинии.
Я пытался положить его в new Thread(new ThreadStart(Move));
... и this.Dispatcher.BeginInvoke
, эффект был тот же.
Подскажите, пожалуйста, как я могу сделать это движение?
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));
}
}