资源文件中的Silverlight动画故事板
问题描述:
故事板可以放置在诸如styles.xaml之类的资源文件中吗?我有一个工具栏可以在很多页面上重复使用。我有这个现在有一个页面级资源工作:资源文件中的Silverlight动画故事板
<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文件放置格式化我想边界还在那里存储故事板。这可能吗?
答
我做了类似的事情,将Storyboard存储在我的App.xaml文件中,并在整个应用程序中使用。访问它在你的后台代码或视图模型的一种方法是这样:
public Storyboard MyStoryBoard = Application.Current.Resources["MyStoryBoard "] as Storyboard;
然后,您可以绑定该Storyboard属性到您的视图声明。
感谢您的建议。我会尝试一下。大多数情况下只是在页面级别保留这些东西,并根据需要进行复制? – Dan 2012-02-27 18:51:01
我们通常会这样做,直到我们看到一种模式发展到可以重新使用故事板的地步,然后我们会将其引入到更全球化的机制中。如果它是特定于你的观点,那么我建议保持它的地方。 – KodeKreachor 2012-02-27 20:02:40