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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать мгновенное изменение кадра? 
:(
    Опции темы
Dims
Дата 23.1.2011, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

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



Изучил, как в Silverlight можно создавать storyboard-ы и в них накладывать ключевые точки с тем, чтобы система автоматически изображала плавную анимацию между ними.

А можно как-то, наоборот, сделать резкий переход?

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

Как это можно реализовать?
PM MAIL   Вверх
vikaz
Дата 23.1.2011, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Если Вам нужно зациклить анимацию, то у DoubleAnimationUsingKeyFrames есть свойство RepeatBehavior, который может принимать численное значение  повторений с префиксом x (1x, 2x, 3x...) или RepeatBehavior="Forever", тогда будет повторяться бесконечно.

Код, заставляет TextBlock опускаться вниз окна за 2с, потом резко возвращается в начало и все повторяется!
Код

<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="WpfApplication12.MainWindow"
    x:Name="Window"
    Title="MainWindow"
    Width="640" Height="480">
    <Window.Resources>
        <Storyboard x:Key="OnLoaded1">
            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)" Storyboard.TargetName="textBlock" RepeatBehavior="2x">
                <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
                <EasingDoubleKeyFrame KeyTime="0:0:2" Value="448"/>
            </DoubleAnimationUsingKeyFrames>
        </Storyboard>
    </Window.Resources>
    <Window.Triggers>
        <EventTrigger RoutedEvent="FrameworkElement.Loaded">
            <BeginStoryboard Storyboard="{StaticResource OnLoaded1}"/>
        </EventTrigger>
    </Window.Triggers>

    <Grid x:Name="LayoutRoot">
        <TextBlock x:Name="textBlock" HorizontalAlignment="Left" Height="17" Margin="29,8,0,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top" Width="54" RenderTransformOrigin="0.5,0.5">
            <TextBlock.RenderTransform>
                <TransformGroup>
                    <ScaleTransform/>
                    <SkewTransform/>
                    <RotateTransform/>
                    <TranslateTransform/>
                </TransformGroup>
            </TextBlock.RenderTransform>
            
        </TextBlock>
    </Grid>
</Window>



--------------------
user posted image

Нет ничего настолько исправного, чтобы в нем не было ошибок. /Ф. Петрарка/ 
PM MAIL ICQ Skype   Вверх
Dims
Дата 27.1.2011, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

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



Мне нужно не в начало вернуть, а сделать собственное произвольное преобразование.

Добавлено через 1 минуту и 8 секунд
Можно ли как-то отреагировать на окончание сториборда или на достижение определённого кадра?
PM MAIL   Вверх
exBlender
Дата 28.1.2011, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Эт, смотря какое "произвольное преобразование". Возможно, States помогут.
--------------------
HTML и CSS забыв как страшный сон, хвалу я заммэлу пою и фирме Майкрософт.
PM MAIL   Вверх
Dims
Дата 1.2.2011, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

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



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


 




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


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

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