2012-02-27 78 views
0

故事板可以放置在诸如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文件放置格式化我想边界还在那里存储故事板。这可能吗?

回答

0

我做了类似的事情,将Storyboard存储在我的App.xaml文件中,并在整个应用程序中使用。访问它在你的后台代码或视图模型的一种方法是这样:

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

然后,您可以绑定该Storyboard属性到您的视图声明。

+0

感谢您的建议。我会尝试一下。大多数情况下只是在页面级别保留这些东西,并根据需要进行复制? – Dan 2012-02-27 18:51:01

+0

我们通常会这样做,直到我们看到一种模式发展到可以重新使用故事板的地步,然后我们会将其引入到更全球化的机制中。如果它是特定于你的观点,那么我建议保持它的地方。 – KodeKreachor 2012-02-27 20:02:40