2012-02-27 110 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