我正在尝试将一点颜色应用程序集成到我在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>
我刚刚按照教程,但它不起作用。我的背景颜色不会改变。我忘记了什么吗?谢谢你的帮助......
答案 0 :(得分: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>
您需要以某种方式触发动画 - 可能是按下按钮或其他路由事件。
答案 1 :(得分:0)
我认为我不必写一个方法或类似的东西来启动动画。我以为设置BeginTime =“00:00:00”会隐式启动动画。我可以编译并运行这段代码。
现在,我的“新问题”是:我如何自动启动动画?
答案 2 :(得分:0)
您可以通过更改eventtrigger来启动它,现在一旦窗口加载就会触发动画。
<EventTrigger RoutedEvent="Window.Loaded">
或者如果你想在任何一点后面的代码中执行它
colorStoryboard.Begin();