0

是否可以获得元素的当前颜色

<UserControl.Resources>
<Storyboard x:Name="SBFade">
    <ColorAnimationUsingKeyFrames x:Name="keyframes" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)" Storyboard.TargetName="LayoutRoot">
        <EasingColorKeyFrame KeyTime="0" Value="#FF681D1D"/>
        <EasingColorKeyFrame KeyTime="0:0:0.6" Value="Gray"/>
    </ColorAnimationUsingKeyFrames>
</Storyboard>
</UserControl.Resources>

<Grid x:Name="LayoutRoot" Background="#808080" >.....</Grid>

在值为#FF681D1D 的行,我想要网格的当前背景颜色(此颜色可以在运行时更改.. 感谢您的帮助!

4

1 回答 1

0

在非关键帧动画中,省略“From”值会做你想要的。

就像是:

<Storyboard x:Name="SBFade">
    <ColorAnimation x:Name="keyframes" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)" Storyboard.TargetName="LayoutRoot" To="Gray" Duration="0:0:0.6" />
</Storyboard>

或者,对于关键帧,如果您省略早期/第一个关键帧,您将获得相同的效果。使用 DiscreteColorKeyFrame 以外的任何内容(在指定时间跳转到指定颜色而不进行插值)将在颜色之间进行插值。

<Storyboard x:Name="SBFade">
    <ColorAnimationUsingKeyFrames x:Name="keyframes" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)" Storyboard.TargetName="LayoutRoot">
        <EasingColorKeyFrame KeyTime="0:0:0.6" Value="Gray"/>
    </ColorAnimationUsingKeyFrames>
</Storyboard>

这些与 msdn 示例ColorAnimationColorAnimationUsingKeyFrames非常相似(向下滚动到 xaml 示例)。

如果要编写反向动画(从灰色不褪色到任何颜色),请在视图模型中保持所需的颜色,并绑定 To 属性(在非关键帧动画的情况下)或 Value 属性(在这种情况下关键帧动画)到视图模型的该属性。

于 2013-01-10T15:48:15.023 回答