Лучший способ переместить изображение по части экрана? - PullRequest
0 голосов
/ 01 января 2011

У меня есть приложение Silverlight WP7 и изображение, которое я хочу отобразить, чтобы оно скользило по экрану. Каков наилучший способ сделать это? Я написал это очень быстро, но пользовательский интерфейс не обновляется, пока не будет выполнен весь метод.

    private void SpinImg(Image img, double left) {
        for(int i = 1; i <= 10000; i++) {
            img.Margin = new Thickness(left, img.Margin.Top + 1, 0, 0);
            if(img.Margin.Top > 314) {
                //move it to the top
                img.Margin = new Thickness(left, -105, 0, 0);
            }
            int wait = 1000 / i;
            Thread.Sleep(wait);
        }
    }

Ответы [ 2 ]

2 голосов
/ 02 января 2011

Использовать раскадровку - это аппаратно-ускоряемое, и все это происходит в потоке рендеринга, поэтому вы увидите гораздо лучшую производительность, чем попытка обновить положение напрямую снова и снова.основанный на времени, а не на кадре, поэтому легко объявить «Я хочу, чтобы изображение переместилось с на 0,5 секунды», и это просто произойдет.

0 голосов
/ 02 января 2011

Thread.Sleep остановит обработку ВСЕГО интерфейса, используйте класс Dispatcher.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...