2012-09-03 91 views
0

我在我的WPF應用程序中使用MVVm。我目前正在玩網格動畫,以便當用戶選擇組合框中的特定項目時,我希望我的網格在展開時進行動畫製作。我在我的視圖模型中有一個屬性,我想綁定在我的網格中觸發動畫。我們如何在MVVM中做到這一點?到目前爲止,我最近發現使用WPF中的基本動畫:如何在擴展時動畫網格

EventTrigger RoutedEvent ="SampleGridEventName" 

的解決方案是有什麼辦法可以使用其他觸發器綁定到我的視圖模型?東西像財產

Trigger BlahBlah ="{Binding ExpandGrid}" 

回答

1

是。樣式有DataTrigger,它也具有EnterActions屬性。動畫存儲在資源中。這就是訣竅。

<UserControl x:Class="TriggerSpike.UserControl1" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
Height="300" Width="300"> 
<UserControl.Resources> 
    <DoubleAnimation x:Key="SearchAnimation" Storyboard.TargetProperty="Opacity" To="1" Duration="0:0:4"/> 
    <DoubleAnimation x:Key="StopSearchAnimation" Storyboard.TargetProperty="Opacity" To="0" Duration="0:0:4"/> 
</UserControl.Resources> 
<StackPanel> 
    <TextBlock Name="progressWheel" TextAlignment="Center" Opacity="0"> 
     <TextBlock.Style> 
      <Style> 
       <Style.Triggers> 
        <DataTrigger Binding="{Binding IsBusy}" Value="True"> 
         <DataTrigger.EnterActions> 
          <BeginStoryboard> 
           <Storyboard> 
            <StaticResource ResourceKey="SearchAnimation"/> 
           </Storyboard> 
          </BeginStoryboard> 
         </DataTrigger.EnterActions> 
         <DataTrigger.ExitActions> 
          <BeginStoryboard> 
           <Storyboard> 
            <StaticResource ResourceKey="StopSearchAnimation"/> 
           </Storyboard> 
          </BeginStoryboard> 
         </DataTrigger.ExitActions> 
        </DataTrigger> 
       </Style.Triggers> 
      </Style> 
     </TextBlock.Style> 
     Searching 
    </TextBlock> 
    <Label Content="Here your search query"/> 
    <TextBox Text="{Binding SearchClause}"/> 
    <Button Click="Button_Click">Search!</Button> 
    <TextBlock Text="{Binding Result}"/> 
</StackPanel> 
</UserControl> 
+0

謝謝。這是我需要的 –