как динамически изменять источник изображения в Silverlight для проекта Windows Phone 7?

Я работаю над проектом Windows Phone 7 с Silverlight, и я пытаюсь показать 4 изображения последовательно, чтобы дать пользователю ощущение короткого фильма . У меня есть 4 URL-адреса, указывающие на 4 разных изображения jpeg, и я использую элемент управления Image, чтобы последовательно отображать эти jpeg. Я пытаюсь добиться этого, выполняя:

private void RetrieveImages()
    {            
        image1.ImageOpened += new EventHandler<RoutedEventArgs>(image1_ImageOpened);
        frameNumber = 0;         
        gotoNextImage();
    }

    void image1_ImageOpened(object sender, RoutedEventArgs e)
    {
        System.Threading.Thread.Sleep(400);
        gotoNextImage();
    }

    private void gotoNextImage()
    {
        if (frameNumber < 4)
        {
            webBrowser1.Dispatcher.BeginInvoke(()=> {
            image1.Source = new System.Windows.Media.Imaging.BitmapImage(new Uri(cam.framesUrl[frameNumber]));
            frameNumber++;
            });
        }
        else
        {
             image1.ImageOpened -= image1_ImageOpened;
        }
    }

Но это просто не работает так, как ожидалось. Я уверен, что мне что-то не хватает о том, как взаимодействовать с пользовательским интерфейсом. Может кто-то указать мне верное направление? Как лучше всего добиться этого?

Отредактировано:

Я лучше объясню, что не так с моим кодом ... вероятно, неясно, что происходит. Я не получаю ошибок в коде, но и "эффекта фильма" не вижу. Он просто показывает одно изображение без итерации между коллекциями изображений. Я думаю, что это проблема многопоточности ... вроде как я не правильно делаю в правильном потоке, чтобы увидеть обновление пользовательского интерфейса, как ожидалось ...

1
задан ctacke 26 September 2010 в 17:43
поделиться