Можно ли применить раскадровку к элементу, который создается после запуска приложения? - PullRequest
0 голосов
/ 01 июля 2011

По сути, у меня есть загрузка многоугольников на холсте (количество которых определяется тем, что пользователь нажимает на холст для каждого желаемого многоугольника).Затем я хочу иметь возможность анимировать эти полигоны, когда пользователь нажимает кнопку «Воспроизвести».Есть идеи, как это сделать?Или это возможно?До сих пор я только научился применять раскадровку к элементам, созданным до запуска приложения.

Ответы [ 2 ]

0 голосов
/ 01 июля 2011

Вот пример ...

<Window.Resources>
    <Storyboard x:Key="storyboard">
                    <DoubleAnimation Storyboard.TargetName="someElement" Storyboard.TargetProperty="Angle" From="0.00" To="-90" Duration="00:00:0.5" AccelerationRatio="1" ></DoubleAnimation>
                    <DoubleAnimation Storyboard.TargetName="someOtherElement" Storyboard.TargetProperty="Angle" From="90" To="0" Duration="00:00:0.5"  DecelerationRatio="0.5" ></DoubleAnimation>
                </Storyboard>
</Window.Resources>

Storyboard sb = (Storyboard)this.FindResource("storyboard");
DoubleAnimation da1 = (DoubleAnimation)sb.Children[0];
DoubleAnimation da2 = (DoubleAnimation)sb.Children[1];

da1.SetValue(Storyboard.TargetNameProperty, "changeTargetElement");
da2.SetValue(Storyboard.TargetNameProperty, "changeOtherTargetElement");
sb.Begin(this, true);
0 голосов
/ 01 июля 2011

Надеюсь, это поможет: Создание анимации в процедурном коде

Вам нужен либо один экземпляр раскадровки на каждый полигон (если вы хотите управлять ими независимо), либо вам нужно добавить несколько DoubleAnimation s, на одну раскадровку, каждая из которых нацелена на позицию x или y одного полигона.

Все зависит от того, какую анимацию вы хотите показать.Вы можете уточнить?

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