2015-04-23 75 views
0

我面對關於動畫執行兩次問題,請檢查代碼:WPF動畫執行兩次

<Grid> 
 
     <Grid.ColumnDefinitions> 
 
      <ColumnDefinition Width="Auto"/> 
 
      <ColumnDefinition Width="*"/> 
 
      <ColumnDefinition Width="Auto"/> 
 
     </Grid.ColumnDefinitions> 
 

 
     <ListView x:Name="lstHandled" Grid.Column="0" Visibility="Visible"> 
 
      <ListViewItem>Jimmy</ListViewItem> 
 
      <ListViewItem>Jimmy</ListViewItem> 
 
      <ListViewItem>Jimmy</ListViewItem> 
 
      <ListViewItem>Jimmy</ListViewItem> 
 
      <ListViewItem>Jimmy</ListViewItem> 
 
      <ListViewItem>Jimmy</ListViewItem> 
 
      <ListViewItem>Jimmy</ListViewItem> 
 
      <ListViewItem>Jimmy</ListViewItem> 
 
      <ListView.Triggers> 
 
       <EventTrigger RoutedEvent="ListView.MouseEnter"> 
 
        <BeginStoryboard> 
 
         <Storyboard> 
 
          <ThicknessAnimation 
 
           Storyboard.TargetName="spAll" 
 
           Storyboard.TargetProperty="(StackPanel.Margin)" 
 
           From="-100,0,0,0" To="0,0,0,0" 
 
           AutoReverse="False" 
 
           Duration="0:0:1"/> 
 
         </Storyboard> 
 
        </BeginStoryboard> 
 
       </EventTrigger> 
 
      </ListView.Triggers> 
 
     </ListView> 
 

 
     <StackPanel x:Name="spAll" Grid.Column="0" Width="100" Margin="-100,0,0,0" Orientation="Horizontal"> 
 
      <ListView x:Name="Handled"> 
 
       <ListViewItem>Hello</ListViewItem> 
 
       <ListViewItem>Hello</ListViewItem> 
 
       <ListViewItem>Hello</ListViewItem> 
 
       <ListViewItem>Hello</ListViewItem> 
 
       <ListViewItem>Hello</ListViewItem> 
 
       <ListViewItem>Hello</ListViewItem> 
 
       <ListViewItem>Hello</ListViewItem> 
 
       <ListViewItem>Hello</ListViewItem> 
 
      </ListView> 
 
      <ListView x:Name="UnHandled"> 
 
       <ListViewItem>World</ListViewItem> 
 
       <ListViewItem>World</ListViewItem> 
 
       <ListViewItem>World</ListViewItem> 
 
       <ListViewItem>World</ListViewItem> 
 
       <ListViewItem>World</ListViewItem> 
 
       <ListViewItem>World</ListViewItem> 
 
       <ListViewItem>World</ListViewItem> 
 
       <ListViewItem>World</ListViewItem> 
 
      </ListView> 
 
      <StackPanel.Triggers> 
 
       <EventTrigger RoutedEvent="StackPanel.MouseLeave"> 
 
        <BeginStoryboard> 
 
         <Storyboard> 
 
          <ThicknessAnimation 
 
           Storyboard.TargetName="spAll" 
 
           Storyboard.TargetProperty="(StackPanel.Margin)" 
 
           From="0,0,0,0" To="-100,0,0,0" 
 
           AutoReverse="False" 
 
           Duration="0:0:1"/> 
 
          
 
         </Storyboard> 
 
        </BeginStoryboard> 
 
       </EventTrigger> 
 
      </StackPanel.Triggers> 
 
     </StackPanel> 
 
    </Grid>

當鼠標離開「剝落」的StackPanel。它發射的鼠標爲ListView Enter事件。如何避免這個問題?

非常感謝!

回答

0

他們都在同一網格列,因此它們重疊,因此進入/離開事件:)在UI將它們分開。