0

我正在尝试将一点 colorApplication 集成到我在 silverlight 中所做的一个小“游戏”中。

我有点 C# 的菜鸟,所以我只是在网上搜索,我发现了一些解释如何做 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>

我只是按照教程进行操作,但它不起作用。我的背景颜色没有改变。我忘了什么吗?谢谢你们的帮助...

4

3 回答 3

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>

您需要以某种方式触发动画——可能是在按钮单击或另一个路由事件上。

于 2013-01-21T16:28:22.973 回答
0

您可以通过更改事件触发器来启动它,现在一旦加载窗口就会触发动画。

<EventTrigger RoutedEvent="Window.Loaded">

或者,如果您想随时在代码隐藏中执行此操作

colorStoryboard.Begin();
于 2013-07-14T11:35:07.413 回答
0

我认为我不必编写方法或类似的东西来启动动画。我认为设置 BeginTime = "00:00:00" 将隐式启动动画。我可以编译并运行这段代码。

所以现在,我的“新问题”是:如何自动启动动画?

于 2013-01-21T20:44:54.183 回答