Раскадровка анимации Silverlight в файле ресурсов

Можно ли поместить раскадровку в файл ресурсов, такой как styles.xaml? У меня есть панель инструментов, которая будет повторно использоваться на многих страницах. У меня это работает сейчас с ресурсом уровня страницы:

 <navigation:Page.Resources>
        <Storyboard x:Name="sbToolbarInitialization">
            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateY)"
                                           Storyboard.TargetName="Toolbar">
                <EasingDoubleKeyFrame KeyTime="0"
                                      Value="46" />
                <EasingDoubleKeyFrame KeyTime="0:0:1"
                                      Value="0">
                    <EasingDoubleKeyFrame.EasingFunction>
                        <BackEase EasingMode="EaseOut" />
                    </EasingDoubleKeyFrame.EasingFunction>
                </EasingDoubleKeyFrame>
            </DoubleAnimationUsingKeyFrames>
        </Storyboard>
    </navigation:Page.Resources>

Что использует пограничный контроль:

<Border x:Name="Toolbar"
                Style="{StaticResource ToolbarBorderStyle}">
            <Border.RenderTransform>
                <CompositeTransform />
            </Border.RenderTransform>
            <i:Interaction.Triggers>
                <i:EventTrigger>
                    <ei:ControlStoryboardAction Storyboard="{StaticResource sbToolbarInitialization}" />
                </i:EventTrigger>
            </i:Interaction.Triggers>
 </Border>

Поскольку я уже использую файл style.xaml для форматирования границы, я хотел бы также сохранить там раскадровку. Это возможно?


person Dan    schedule 27.02.2012    source источник


Ответы (1)


Я сделал что-то подобное, сохранив раскадровку в файле App.xaml и используя ее во всем приложении. Один из способов получить к нему доступ в вашей модели кода программной части или модели представления:

public Storyboard MyStoryBoard = Application.Current.Resources["MyStoryBoard "] as Storyboard;

Затем вы можете декларативно привязать это свойство раскадровки к вашему представлению.

person KodeKreachor    schedule 27.02.2012
comment
Спасибо за предложение. Я попробую. Большинство просто хранит подобные вещи на уровне страницы и дублирует их по мере необходимости? - person Dan; 27.02.2012
comment
Обычно мы делаем «да», пока не увидим, как развивается шаблон, в котором мы можем повторно использовать раскадровку, тогда мы вытащим его в более глобально доступный механизм. Если это относится к вашему мнению, я бы рекомендовал оставить его локальным. - person KodeKreachor; 28.02.2012