0

尝试对 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”动画对象不能用于动画属性“背景”,因为它的类型不兼容“System.Windows.Media.Brush”。

还尝试更改Storyboard.TargetPropertyBackground.Color并得到:

无法解析属性路径“Background.Color”中的所有属性引用。验证适用的对象是否支持这些属性。

我该如何解决这个问题?

4

3 回答 3

1

Storyboard.TargetProperty="Background.Color"是正确的。尝试

<Style x:Key="AlertedRowStyle" TargetType="{x:Type dxg:GridRowContent}">
    <Setter Property="Background" Value="Transparent" />
    <Style.Triggers>
        ...

我猜背景是空的,所以故事板找不到动画的东西。

于 2012-07-17T10:20:02.390 回答
0

尝试

Storyboard.TargetProperty="Background.(SolidColorBrush.Color)"

为我工作。

于 2012-07-17T10:22:19.393 回答
0

你可以打开一个新线程。在此线程中,您使用循环。在此循环中,您可以更改行的背景颜色。在循环中,您将线程休眠 0.3 秒或其他时间。所以它应该看起来像闪烁。

问候

于 2012-07-17T14:07:38.897 回答