2011-12-06 66 views
1

我必須做一個幻燈片放映存儲在我孤立存儲的圖像..但我是初學者在Windows手機,我有一些dificulties ..我已經知道如何呈現圖像,或顯示圖像在屏幕..但我想呈現圖像2秒每一個.. theres一些funcionalty來定義時間重現?任何示例?製作幻燈片wp7

IsolatedStorageFileStream stream = new IsolatedStorageFileStream(name_image,  FileMode.Open, myIsolatedStorage); 

        var image = new BitmapImage(); 
        image.SetSource(stream); 
        image1.Source = image; 

這是我如何打開圖像。我有5名的圖像,然後我打開每一個在foreach ..但我想看到的圖像2秒..

回答

1

你可以使當前線程休眠2秒:

System.Threading.Thread.Sleep(2000); 

由於在foreach機構中的最後一句話。它不是很整潔,但它會完成這項工作。

1

更好的方法是使用Reactive Extension

首先看看我在這post的答案。它會告訴你你需要什麼dll以及一些有用的鏈接。

基本上,您需要將圖像存儲在集合中,然後使用RxGenerateWithTime)基於集合創建具有時間維度的可觀察序列。最後你調用一個方法來添加一個圖像並將其訂閱到可觀察序列。

這裏是一個工作例子,

private void MainPage_Loaded(object sender, RoutedEventArgs e) 
{ 
    // create a collection to store your 5 images 
    var images = new List<Image> 
     { 
      new Image() { Source = new BitmapImage(new Uri("/ApplicationIcon.png", UriKind.Relative)), Width = 120, Height = 120 }, 
      new Image() { Source = new BitmapImage(new Uri("/ApplicationIcon.png", UriKind.Relative)), Width = 120, Height = 120 }, 
      new Image() { Source = new BitmapImage(new Uri("/ApplicationIcon.png", UriKind.Relative)), Width = 120, Height = 120 }, 
      new Image() { Source = new BitmapImage(new Uri("/ApplicationIcon.png", UriKind.Relative)), Width = 120, Height = 120 }, 
      new Image() { Source = new BitmapImage(new Uri("/ApplicationIcon.png", UriKind.Relative)), Width = 120, Height = 120 } 
     }; 

    // create a time dimension (2 seconds) to the generated sequence 
    IObservable<Image> getImages = Observable.GenerateWithTime(0, i => i <= images.Count - 1, i => images[i], _ => TimeSpan.FromSeconds(2), i => ++i); 

    // subscribe the DisplayOneImage handler to the sequence 
    getImages.ObserveOnDispatcher().Subscribe(DisplayOneImage); 
} 

private void DisplayOneImage(Image image) 
{ 
    // MyItems is an ItemsControl on the UI 
    this.MyItems.Items.Add(image); 
} 

希望這有助於。 :)