Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как анимировать gif картинку в xaml? 
:(
    Опции темы
xXxSataNxXx
Дата 13.12.2010, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 25.12.2009

Репутация: нет
Всего: 1



Как можно настроить переключение фреймов в изображении gif с помощью xaml?
Или вообще, как анимировать gif изображение?
PM MAIL   Вверх
Kefir
Дата 8.1.2011, 02:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 22
Всего: 87



Скопипастил отсюда:
Код

class GifImage : Image {

    public int FrameIndex {
        get { return (int)GetValue(FrameIndexProperty); }
        set { SetValue(FrameIndexProperty, value); }
    }

    public static readonly DependencyProperty FrameIndexProperty =
        DependencyProperty.Register("FrameIndex", typeof(int), typeof(GifImage), new UIPropertyMetadata(0, new PropertyChangedCallback(ChangingFrameIndex)));

    static void ChangingFrameIndex(DependencyObject obj, DependencyPropertyChangedEventArgs ev) {
        GifImage ob = obj as GifImage;
        ob.Source = ob.gf.Frames[(int)ev.NewValue];
        ob.InvalidateVisual();
    }
    GifBitmapDecoder gf;
    Int32Animation anim ;            
    public GifImage(Uri uri) {
        gf = new GifBitmapDecoder(uri, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
        anim = new Int32Animation(0, gf.Frames.Count - 1, new Duration(new TimeSpan(0,0, 0,gf.Frames.Count/10,(int)((gf.Frames.Count/10.0-gf.Frames.Count/10)*1000))));
        anim.RepeatBehavior = RepeatBehavior.Forever;
        Source = gf.Frames[0];
    }
    bool animationIsWorking = false;
    protected override void OnRender(DrawingContext dc) {
        base.OnRender(dc);
        if (!animationIsWorking) {
            BeginAnimation(FrameIndexProperty, anim);
            animationIsWorking = true;
        }
    }
}

PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0945 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.