尝试在DevExpress网格中为单行执行简单的红色闪烁效果。
我在网格的行上应用了以下样式:
<Style x:Key="AlertedRowStyle" TargetType="{x:Type dxg:GridRowContent}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Row.IsAlerted}" Value="False">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetProperty="Background"
To="Red"
Duration="0:0:0.500"
AutoReverse="True"
RepeatBehavior="Forever">
<ColorAnimation.EasingFunction>
<CircleEase EasingMode="EaseOut" />
</ColorAnimation.EasingFunction>
</ColorAnimation>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetProperty="Background"
To="White"
Duration="0:0:0.500" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
它会导致以下异常:
'System.Windows.Media.Animation.ColorAnimation'动画对象不能用于为属性'Background'设置动画,因为它是不兼容的类型'System.Windows.Media.Brush'。 的
还尝试将Storyboard.TargetProperty
更改为Background.Color
并获得:
无法解析属性路径'Background.Color'中的所有属性引用。验证适用的对象是否支持属性。
我该如何解决这个问题?
答案 0 :(得分:1)
Storyboard.TargetProperty="Background.Color"
是对的。尝试
<Style x:Key="AlertedRowStyle" TargetType="{x:Type dxg:GridRowContent}">
<Setter Property="Background" Value="Transparent" />
<Style.Triggers>
...
我猜背景是空的,因此故事板无法找到动画的内容。
答案 1 :(得分:0)
尝试
Storyboard.TargetProperty="Background.(SolidColorBrush.Color)"
为我工作。
答案 2 :(得分:0)
你可以打开一个新线程。在这个线程中,您使用循环。在此循环中,您可以更改行的Backcolor。在循环中,你将线程休眠0.3秒或其他东西。所以它应该看起来像闪烁。
问候