2010-05-25 3 views
0

두 개의 xaml 파일 중 하나는 MainWindow.xaml이고 다른 하나는 userControl EditTaskView.xaml입니다. MainWindow.xaml에서는 listbox로 구성되며 listbox의 항목을 두 번 클릭하면 EditView userControl의 다른 창 (편집 창)이 표시됩니다. 목록 상자의 항목을 두 번 클릭 할 때마다 매번이 userControl에 애니메이션을 적용하려고합니다. userControl에 애니메이션을 추가했지만 애니메이션은 한 번만 실행됩니다. 목록 상자의 항목을 클릭 할 때마다 매번 애니메이션을 실행시킬 수 있습니까?WPF에서 애니메이션 UserControl?

MainWindow를 코드에서

<ListBox x:Name="lstBxTask" Style="{StaticResource ListBoxItems}" MouseDoubleClick="lstBxTask_MouseDoubleClick"> 
     <ListBox.ItemTemplate>    
      <DataTemplate>      
       <StackPanel> 
        <Rectangle Style="{StaticResource LineBetweenListBox}"/> 
        <StackPanel Orientation="Horizontal"> 
         <TextBlock Text="{Binding Taskname}" Style="{StaticResource TextInListBox}"/> 
         <Button Name="btnDelete" Style="{StaticResource DeleteButton}" Click="btnDelete_Click"/>              
        </StackPanel> 
       </StackPanel>      
      </DataTemplate> 
     </ListBox.ItemTemplate> 
    </ListBox> 
    <ToDoTask:EditTaskView x:Name="EditTask" Grid.Row="1" Grid.RowSpan="2" Grid.ColumnSpan="2" Visibility="Collapsed"/> 

MainWindow.xaml는 가시에 EditTaskView의 가시성을 변경 마우스 더블 클릭 이벤트가있다.

제안 사항?

답변

0

귀하의 애니메이션을 표시하지 않았습니다.

<UserControl.Resources> 
    <Storyboard x:Key="Storyboard1"> 
     <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)" Storyboard.TargetName="LayoutRoot"> 
      <EasingColorKeyFrame KeyTime="0" Value="#FFB62A2A"/> 
      <EasingColorKeyFrame KeyTime="0:0:4" Value="#FF2A32B6"/> 
     </ColorAnimationUsingKeyFrames> 
    </Storyboard> 
</UserControl.Resources> 
<UserControl.Triggers> 
    <EventTrigger RoutedEvent="Control.MouseDoubleClick"> 
     <BeginStoryboard Storyboard="{StaticResource Storyboard1}"/> 
    </EventTrigger> 
</UserControl.Triggers> 
0

감사 bitbonk, 코드가 정말 도움이 : 일반적으로 애니메이션 이벤트가 트리거됩니다 플레이 매번 않습니다.

내 문제가 무엇인지 생각해 봅니다. Control.MouseDoubleClick 대신 FrameworkElement.Loaded로 EventTrigger를 가졌습니다.

어쨌든 코드는 다음과 같습니다

<Storyboard x:Key="AnimateEditView"> 
     <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" Storyboard.TargetName="EditTask"> 
      <EasingThicknessKeyFrame KeyTime="0" Value="0"> 
       <EasingThicknessKeyFrame.EasingFunction> 
        <ExponentialEase EasingMode="EaseOut"/> 
       </EasingThicknessKeyFrame.EasingFunction> 
      </EasingThicknessKeyFrame> 
      <EasingThicknessKeyFrame KeyTime="0:0:1.6" Value="0"/> 
     </ThicknessAnimationUsingKeyFrames> 
     <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="EditTask"> 
      <EasingDoubleKeyFrame KeyTime="0" Value="0"/> 
      <EasingDoubleKeyFrame KeyTime="0:0:1.6" Value="1"/> 
     </DoubleAnimationUsingKeyFrames> 
    </Storyboard> 

<Window.Triggers> 
     <EventTrigger RoutedEvent="FrameworkElement.Loaded"> 
      <BeginStoryboard Storyboard="{StaticResource headerAnimation}"/> 
      <BeginStoryboard Storyboard="{StaticResource textBxAnimation}"/> 
     </EventTrigger> 
     <EventTrigger RoutedEvent="Control.MouseDoubleClick"> 
      <BeginStoryboard Storyboard="{StaticResource AnimateEditView}"/> 
     </EventTrigger> 
    </Window.Triggers> 
관련 문제