绑定EasingColorKeyFrame颜色值

时间:2012-12-14 05:08:26

标签: silverlight binding storyboard windows-phone windows-phone-8

我有以下Windows Phone代码,用于将Rectangle的颜色从黑色更改为红色。

<Grid x:Name="LayoutRoot">
  <phone:Pivot x:Name="MyPivot" >
    <phone:PivotItem x:Name="MyPivotItem">
      <Canvas x:Name="MyCanvas">
        <Canvas.Resources>
          <Storyboard x:Name="MyStoryboard">
            <ColorAnimationUsingKeyFrames
              Storyboard.TargetProperty="(Rectangle.Fill).(SolidColorBrush.Color)"
              AutoReverse="True">
                <EasingColorKeyFrame KeyTime="00:00:0" Value="Black" />
                <EasingColorKeyFrame KeyTime="00:00:0.5" Value="Red" />
            </ColorAnimationUsingKeyFrames>
          </Storyboard>
        </Canvas.Resources>
      </Canvas>
    </phone:PivotItem>
  </phone:Pivot>
</Grid>

我想做的是让它更具动态性,以便我可以从代码隐藏页面更改EasingColorKeyFrame中使用的颜色。是否可以将Value的{​​{1}}绑定到代码隐藏页面中的属性?

1 个答案:

答案 0 :(得分:1)

如果您只是尝试更改代码隐藏页面中的颜色,那么只需为您的帧提供一个x:Name并在后面的代码中设置它们的值。

...
<EasingColorKeyFrame KeyTime="00:00:0" x:Name="start" Value="Black" />
<EasingColorKeyFrame KeyTime="00:00:0.5" x:Name="end" Value="Red" />
...

代码隐藏:

private void ChangeColors()
{
  start.Value = Colors.Green;
  end.Value = Colors.Blue;
}