Как использовать изображения, хранящиеся в изолированном хранилище, для анимации раскадровки? - PullRequest
4 голосов
/ 29 марта 2012

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

РЕДАКТИРОВАТЬ Я могу открыть одно изображение из изолированного хранилища, но это последнее изображение, которое появляется, я даже не знаю, работает ли анимациякак это только одно изображение, кто-нибудь может помочь? код указан во втором посте ниже

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();
    }


}

РЕДАКТИРОВАТЬ Я могу открыть одно изображение из изолированного хранилища, но это последнее изображение, которое появляется, я даже не знаю,он запускает анимацию, так как это только одно изображение, кто-нибудь может помочь?Спасибо

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

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();
        }
    }

Ответы [ 3 ]

0 голосов
/ 02 апреля 2012

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

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"] = "support@windowsphonnegeek.com";
            }

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

            this.DataContext = City1;
        }

public void SaveStringObject()
        {
            var settings = IsolatedStorageSettings.ApplicationSettings;
            settings.Add("myemail", "support@windowsphonnegeek.com");
        }

        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 голосов
/ 08 апреля 2012

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

0 голосов
/ 29 марта 2012

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

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