我有一个按钮(或者更确切地说是从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>
如何定位按钮内的任何标签?
我试图在某种程度上绑定标签&#39;前景到按钮的前景(然后我只是设置&#34;前景&#34;而不是&#34; something.Foreground&#34;)。这在某种程度上起了作用。问题是,我在标签上有一个样式,可以改变鼠标悬停时的颜色。完成后,绑定将被覆盖,闪烁停止。
答案 0 :(得分:0)
如何定位按钮内的任何标签?
您无法通过RequestButtonStyle中的触发器执行此操作,因为样式设置器只能设置要应用的类型的属性,即此情况下CADButton本身的属性。
如果要在Buttons的ControlTemplate中为Label的属性设置动画,则需要为Label本身定义另一个Style并将其应用于Label。或者,您可以将Label的Foreground属性绑定到父Button的Foreground属性,并为此属性设置动画。这将是最简单和最好的解决方案,因此您应该尝试移动触发器,将鼠标上的Label颜色更改为ControlTemplate或Button的样式。