2012-03-29 2 views
4

Я не могу получить изображения, которые хранятся в изолированном хранилище, чтобы появиться в моей доске объявлений, я могу выводить изображения на экран, пока я делаю снимок с помощью камеры, но затем, когда я использую одно и то же имя файла Value = String.Format("MyImage{0:D2}.jpg", i) as где я их сохранил, он, похоже, не работает, я должен снова открыть изолированное хранилище в раскадровке. Я использую учебник анимации свечей here, но эти изображения находятся в папке, сохраненной статически. может кто-нибудь помочь, я был бы очень признателен.Как использовать изображения, хранящиеся в изолированном хранилище для анимации раскадровки?

EDIT Я могу открыть одно изображение из изолированного хранилища, но это последнее изображение, которое появляется, я даже не знаю, если он работает в анимации, как это только один образ, Может кто-нибудь помочь? код на втором посте ниже

private void PlayButton_Click(object sender, RoutedEventArgs e) 
    { 


     AnimationPanel.Visibility = Visibility.Visible; 
     storyboard = new Storyboard 
     { 
      RepeatBehavior = RepeatBehavior.Forever 
     }; 

     var animation = new ObjectAnimationUsingKeyFrames(); 

     Storyboard.SetTarget(animation, CandleImage); 
     Storyboard.SetTargetProperty(animation, new PropertyPath("Source")); 

     storyboard.Children.Add(animation); 

     for (int i = 0; i <= savedCounter; i++) 
     { 
      var keyframe = new DiscreteObjectKeyFrame 
      { 
       KeyTime = KeyTime.FromTimeSpan(TimeSpan.FromMilliseconds(50 * i)), 
       Value = String.Format("MyImage{0:D2}.jpg", i)//images from isolated storage 
      }; 

      animation.KeyFrames.Add(keyframe); 
     } 

     Resources.Add("CandleStoryboard", storyboard); 

     storyboard.Begin(); 
    } 


} 

EDIT Я могу открыть одно изображение из изолированного хранилища, но это последнее изображение, которое появляется, я даже не знаю, если он работает в анимации, как это только один изображение, может ли кто-нибудь помочь? Благодаря

вот код, я использую

for (int i = 0; i < savedCounter; i++) 
      { 
       try 
       { 

        image.SetSource(isStore.OpenFile("MyImage"+i+".jpg", FileMode.Open));//images from isolated storage 

       } 
       catch (Exception) 
       { 

        //throw; 
       } 


       var keyframe = new DiscreteObjectKeyFrame 
       { 

        KeyTime = KeyTime.FromTimeSpan(TimeSpan.FromMilliseconds(50 * i)), 
        Value = image 

       }; 

       animation.KeyFrames.Add(keyframe); 
      } 

      Resources.Add("CandleStoryboard", storyboard); 

      storyboard.Begin(); 
     } 
     else 
     { 
      storyboard.Stop(); 
     } 
    } 
+0

Попробуйте снова вызвать изолированное хранилище и потоковое изображение. –

+0

Никогда не проверял, но вы можете попробовать использовать «isostore» Ури схемы для ссылки изображение: 'isostore:/MyImage01.jpg' –

+0

Привет, ребята спасибо за помощь, я попытался с помощью' вар ключевого кадра = новый DiscreteObjectKeyFrame { KeyTime = KeyTime.FromTimeSpan (TimeSpan.FromMilliseconds (50 * i)), Значение = isStore.OpenFile (String.Format ("MyImage {0: D2} .jpg", i), FileMode.Open) // изображения из изолированного хранилища }; 'и эта операция не разрешена на IsolStorageFileStream." Исключение было необработанным. Как открыть несколько изображений? –

ответ

0

В моем редактировании я должен был переместить BitmapImage внутри цикла, так как ему нужен новый экземпляр каждый раз, потребовалось некоторое время, чтобы найти, но как сейчас работает.

0

считывать изображение с помощью IsolatedStorage IsolatedStorageFileStream, а затем использовать его в раскадровку.

0

Привет Попробуйте следующий код,

MainPage.xaml:

<StackPanel x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 
      <Button Content="Save to IsolatedStorageSettings" Click="btnSave_Click"/> 
      <Button Content="Get Data from IsolatedStorageSettings" Click="btnGet_Click"/> 

      <TextBlock Text="{Binding Name}" FontSize="50"/> 
      <Image Source="{Binding Flag}" Stretch="None" HorizontalAlignment="Left"/> 

</StackPanel> 

MainPage.xaml.cs:

private void btnSave_Click(object sender, RoutedEventArgs e) 
     { 
      SaveStringObject(); 
      SaveCompositeObject(); 
     } 

private void btnGet_Click(object sender, RoutedEventArgs e) 
     { 
      if(settings.Contains("myemail")) 
      { 
       //Retrieve email Data 
       var location = settings["myemail"].ToString(); 
       settings["email"] = "[email protected]"; 
      } 

      //Retrieve City Data 
      City City1; 
      settings.TryGetValue<City>("city", out City1); 

      this.DataContext = City1; 
     } 

public void SaveStringObject() 
     { 
      var settings = IsolatedStorageSettings.ApplicationSettings; 
      settings.Add("myemail", "[email protected]"); 
     } 

     public void SaveCompositeObject() 
     { 
      var settings = IsolatedStorageSettings.ApplicationSettings; 
      City city = new City { Name = "London", Flag = "UK.png" }; 
      settings.Add("city", city); 
     } 

     public class City 
     { 
      public string Name 
      { 
       get; 
       set; 
      } 

      public string Flag 
      { 
       get; 
       set; 
      } 
     } 

Вы можете сохранить и получить изображения из изолированного хранилища. Теперь вы можете использовать это для анимации с помощью раскадровки.

+0

Привет, моя проблема заключается в открытии изображений в изолированном хранилище внутри цикла, я могу открыть их и связать их с списком уже, это просто внутри этого цикла для анимации, которую я не могу, он выводит только последнее изображение. Вы также не можете привязываться к раскадровке. –

+0

http://msdn.microsoft.com/en-us/library/system.io.isolatedstorage(VS.95).aspx, проверьте это для IsolatedStorage с помощью цикла – Ponmalar

+0

Спасибо за ссылку, но я не знаю, где использовать это в моем цикле, когда он возвращает последнее имя файла, то же, что и мой собственный код? –

Смежные вопросы