2010-12-10 51 views
8

所以,如果我想要在ViewModel中發生一些邏輯故事時播放故事板動畫。但是StoryBoard存在於視圖中,而我沒有對ViewModel中的視圖的引用。我該怎麼去演故事板呢?WPF:如何在MVVM中播放故事板?

回答

6

您可以使用數據觸發器在視圖中啓動動畫。

事情是這樣的:

...<ItemsControl.ItemTemplate> 
        <DataTemplate> 
         <TextBlock Text="{Binding Value.Name}" Padding="5"> 
          <TextBlock.Style> 
           <Style> 
            <Style.Triggers> 
             <DataTrigger Binding="{Binding Value.StartAnimation}" Value="True"> 
              <DataTrigger.EnterActions> 
               <BeginStoryboard> 
                <Storyboard 
                 Storyboard.TargetProperty="FontSize" 
                 Duration="0:0:0.5"> 
                 <DoubleAnimation From="10" To="30" AutoReverse="True" /> 
                </Storyboard> 
               </BeginStoryboard> 
              </DataTrigger.EnterActions> 
             </DataTrigger> 
            </Style.Triggers> 
           </Style> 
          </TextBlock.Style> 
         </TextBlock> 
        </DataTemplate> 
       </ItemsControl.ItemTemplate> 
      </ItemsControl> 
... 
0

Josh Smith解釋瞭如何在Advanced MVVM這本書中做到這一點。他使用的示例應用程序稱爲BubbleBurst,它是available on Codeplex

我強烈推薦這本書。這是務實和實用的。

+9

所以你指我一本書嗎?如果你不知道答案,那麼就說你不知道;) – foreyez 2010-12-10 04:24:31