2013-01-21 4 views
0

저는 약간의 colorApplication을 실버 라이트에서했던 작은 "게임"에 통합하려고합니다.ColorAnimation은 아무 것도하지 않습니다

나는 그물을 검색하고 colorApplication을하는 방법을 설명하는 것을 발견했다.

여기에서 배경색을 주황색에서 파란색으로 변경 한 다음 자동 반사를 사용하여 주황색으로 되돌리고 싶습니다.

은 여기 내 XAML

<Grid x:Name="LayoutRoot" Background="Orange"> 
    <Grid.Resources> 
     <Storyboard x:Name="colorStoryboard"> 
      <ColorAnimation BeginTime="00:00:00" AutoReverse="True" 
          Storyboard.TargetName="LayoutRoot" 
          Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)" 
          Duration="00:00:02" From="Orange" To="Blue" /> 
     </Storyboard> 
    </Grid.Resources> 

    <sdk:Label Height="16" HorizontalAlignment="Left" Margin="162,12,0,0" 
       Name="label1" VerticalAlignment="Top" Width="84" 
       Content="Vrai ou Faux ?" /> 
    <Button Content="Vrai" Height="23" HorizontalAlignment="Left" Margin="59,61,0,0" 
      Name="buttonVrai" VerticalAlignment="Top" Width="75" 
      Click="buttonVrai_Click" /> 
    <Button Content="Faux" Height="23" HorizontalAlignment="Left" Margin="267,61,0,0" 
      Name="buttonFaux" VerticalAlignment="Top" Width="75" 
      Click="buttonFaux_Click" /> 
    <sdk:Label Height="20" HorizontalAlignment="Left" Margin="59,184,0,0" 
       Name="label2" VerticalAlignment="Top" Width="60" Content="Score" /> 
    <sdk:Label Height="20" HorizontalAlignment="Left" Margin="322,184,0,0" 
       Name="labelScore" VerticalAlignment="Top" Width="20" Content="0" /> 
    <Button Content="Redémarrer" Height="23" HorizontalAlignment="Left" 
      Margin="162,265,0,0" Name="buttonRedemarrer" VerticalAlignment="Top" 
      Width="84" Click="buttonRedemarrer_Click" /> 
</Grid> 

난 그냥 튜토리얼을 따라하지만이 작동하지 않는 것입니다. 배경색이 변경되지 않습니다. 내가 뭔가 잊었 니? 귀하의 도움을 주셔서 감사합니다 ...

+0

에서 코드 숨김에서이를 수행하려는 경우 나는'Storyboard'에'Key'을 추가 할 때까지이도 컴파일되지 않았다. 이 애니메이션을 시작하려고하는 코드는 어디에 있습니까? –

답변

2

문제는 아마 아무 것도 애니메이션을 실행하지 못하는 것입니다. 내가 Window.Loaded, 말에 애니메이션을 트리거하면, 애니메이션이 잘 작동 :

<Grid x:Name="LayoutRoot" 
     Background="Orange"> 
    <Grid.Triggers> 
    <EventTrigger RoutedEvent="Window.Loaded"> 
     <BeginStoryboard> 
     <Storyboard x:Name="colorStoryboard"> 
      <ColorAnimation BeginTime="00:00:00" 
          AutoReverse="True" 
          Storyboard.TargetName="LayoutRoot" 
          Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)" 
          Duration="00:00:02" 
          From="Orange" 
          To="Blue" /> 
     </Storyboard> 
     </BeginStoryboard> 
    </EventTrigger> 
    </Grid.Triggers> 
    <!-- ETC --> 
</Grid> 

당신은 어떻게 든 애니메이션을 실행하는 데 필요합니다 - 아마도 버튼을 클릭하거나 다른 라우트 된 이벤트에.

0

저는 애니메이션을 시작하기 위해 메소드 또는 이와 비슷한 것을 작성할 필요가 없다고 생각했습니다. BeginTime = "00:00:00"으로 설정하면 암시 적으로 애니메이션이 시작됩니다. 나는이 코드를 컴파일하고 실행할 수있다.

이제 내 "새로운 질문"은 다음과 같습니다. 어떻게 애니메이션을 자동으로 시작할 수 있습니까?

+0

위 예제에서 xaml을 사용하면 윈도우가로드 된 후 자동으로 애니메이션이 시작됩니다. – Daniel

+0

이제는 페이지가로드되고 100 %에 도달하면 아무 일도 일어나지 않습니다. – Hito

0

eventtrigger를 변경하여 시작할 수 있습니다. 이제는 창이로드되면 애니메이션이 트리거됩니다.

<EventTrigger RoutedEvent="Window.Loaded"> 

아니면, 어느 시점 나를 위해

colorStoryboard.Begin(); 
관련 문제