在 WPF 中使用情节提要为网格背景颜色设置动画

Posted

技术标签:

【中文标题】在 WPF 中使用情节提要为网格背景颜色设置动画【英文标题】:Animate grid background color using storyboard in WPF 【发布时间】:2021-01-26 03:41:40 【问题描述】:

我是 WPF 故事板的新手。我想为网格背景颜色设置动画。我收到此错误:

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

我的 XAML 代码:

<Grid x:Name="alert_grid">
<Grid.Resources>
<Storyboard x:Key="flashing_storyboard" Storyboard.TargetName="alert_grid">
<ColorAnimation 
 Storyboard.TargetProperty="Background.Color"
 From="Black" To="Orange" Duration="0:0:2"
 AutoReverse="True" RepeatBehavior="Forever" />
</Storyboard>
</Grid.Resources>
</Grid>

后面的代码:

Storyboard sb = alert_grid.FindResource("flashing_storyboard") as Storyboard;
if (sb != null)

    sb.Begin();

知道如何让背景颜色动画化吗?

【问题讨论】:

背景是画笔而不是颜色。看到无论如何你都有代码,你可以将solidcolorbrush从控件的背景prooerty中取出并在代码中做一个彩色动画。没有任何故事板。 【参考方案1】:

请试试这个。

<Grid Name="alert_grid" Height="75" HorizontalAlignment="Left" Margin="27,12,0,0" VerticalAlignment="Top" Width="160" Background="LightGray">
             <Grid.Triggers>
                <EventTrigger RoutedEvent="Button.MouseLeave">
                    <BeginStoryboard>
                        <Storyboard x:Name ="flashing_storyboard" Storyboard.Target="Binding ElementName=alert_grid">
                        <ColorAnimation To="Orange" Storyboard.TargetProperty="(Grid.Background).(SolidColorBrush.Color)" From="Black" 
         AutoReverse="True" RepeatBehavior="Forever" FillBehavior="Stop" Duration="0:0:2"/>
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
           </Grid.Triggers>
    </Grid>

和后面的代码

Storyboard sb = alert_grid.FindName("flashing_storyboard") as Storyboard;
if (sb != null)

   sb.Begin();

【讨论】:

以上是关于在 WPF 中使用情节提要为网格背景颜色设置动画的主要内容,如果未能解决你的问题,请参考以下文章

WPF 动画:绑定到情节提要动画的“To”属性

XCODE:UIView 背景没有出现在屏幕上,即使我在情节提要中设置了颜色并以编程方式

将情节提要的目标设置为 DataTemplate WPF 中的按钮

TableViewCell 颜色问题

在情节提要中更改选项卡栏项目选定的颜色

如何在情节提要上更改标签栏背景颜色和标签栏项目颜色