【发布时间】:2017-04-24 20:18:54
【问题描述】:
我有一个按钮(或者更确切地说是从 Button 派生的东西)包含一个网格,该网格又包含一个图像和四个标签。
我想有条件地为按钮设置动画,改变前景色和背景色使其闪烁。
这适用于背景,但不适用于标签的前景。
风格:
<Style x:Key="RequestButtonStyle" BasedOn="{StaticResource DefaultButtonStyle}" TargetType="local:CADButton">
<Style.Triggers>
<DataTrigger Binding="{Binding Priority}" Value="1">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard
RepeatBehavior="Forever"
Duration="0:0:1.5">
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(local:CADButton.Background).Color">
<DiscreteColorKeyFrame KeyTime="0:0:0" Value="{StaticResource EmergencyCallColor}"/>
<DiscreteColorKeyFrame KeyTime="0:0:0.75" Value="{StaticResource DefaultButtonBackgroundColor}"/>
</ColorAnimationUsingKeyFrames>
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(TextBlock.Foreground).(SolidColorBrush.Color)">
<DiscreteColorKeyFrame KeyTime="0:0:0" Value="{StaticResource DefaultButtonForegroundPressedColor}"/>
<DiscreteColorKeyFrame KeyTime="0:0:0.75" Value="{StaticResource DefaultButtonForegroundColor}"/>
</ColorAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
</Style>
如何定位按钮内的任何标签?
我尝试将标签的前景绑定到按钮的前景(然后我只是设置了“前景”而不是“something.Foreground”)。这在一定程度上奏效了。问题是,我在标签上有一种样式,可以在鼠标悬停时改变颜色。完成后,绑定将被覆盖,闪烁停止。
【问题讨论】:
标签: c# wpf animation storyboard