Перерисовывая на холсте серебряного света каждый цикл цикла.Является ли это возможным? - PullRequest
1 голос
/ 17 июня 2011

любая помощь или указатели будут в целом оценены.

По сути, я пытаюсь ЛИБО переместить или перерисовать несколько эллипсов на холсте после "поворота".

В данный момент я могу нажать кнопку, чтобы RenderTransform эллипс в новое место на холсте. Всякий раз, когда я пытаюсь сделать это более одного раза, например, увеличивая значения TranslateTransform X и Y на один цикл, все приложение зависает. Это проблемы, которые RenderTransform? Холст? Тема MainPage? Код выглядит солидно, поэтому остается загадкой, почему он просто не будет перемещать эллипс более одного раза.

private void update()
    {
        int x = 0;
        int y = 0;
        while (turns <= 5)
        {
            TranslateTransform t = new TranslateTransform();
            t.X = x + 1;
            t.Y = y + 1;
            // agent is a child element of a canvas.
            agent.RenderTransform = t;
            turns--;
        }
    }

1 Ответ

1 голос
/ 17 июня 2011

Вы можете использовать CompositionTarget , это поможет вам
посмотрите на этот пример
еще один хороший пример

используйте это так:

private void Update(object sender, EventArgs e)
{
     //Your code here
}

и перехватить событие Rendering CompositionTarget.Rendering += Update;

Редактировать: Если вы используете Canvas, лучше использовать свойства Canvas.Left и Canvas.Top

...