神奇的动态改变画刷

本文介绍了在WPF中利用Visual Studio开发一个动态改变画刷的动画效果,通过ColorAnimation改变椭圆颜色,PointAnimation调整其位置,展示了精彩的视觉效果。

神奇的动态改变画刷


开发工具与关键技术:Visual Studio + WPF
撰写时间:2019年5月22日


1、 动画是WPF中的一个亮点,现在跟大家分享一个好看的动画——动态改变画刷,在这个Ellipse圆形动画中使用ColorAnimation属性标签改变颜色,使用PointAnimatin属性标签改变横纵坐标。

<Window x:Class="Wpf2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="动态改变画刷" Height="350" Width="525">
    <Window.Triggers>
        <!--BeginStoryboard:要在EventTrigger中触发调用,RoutedEvent是响应的事件-->
        <EventTrigger RoutedEvent="Window.Loaded">
            <EventTrigger.Actions>
                <BeginStoryboard>
                    <Storyboard>
                        <!--PointAnimation属性:使用线性内插对两个目标值之间的 System.Windows.Point属性值进行动画处理。设置Fill.GradientOrigin属性: 获取或设置定义渐变开始的二维焦点的位置。-->
                        <PointAnimation Storyboard.TargetName="ellipse1" Storyboard.TargetProperty="Fill.GradientOrigin" From="1,1" To="0,0" Duration="0:0:10" />
                        <!--ColorAnimation属性:使用线性内插对两个目标值之间的 System.Windows.Media.Color属性值进行动画处理。设置Fill.GradientStops[0].Color属性:获取或设置渐变停止点的颜色。-->
                        <ColorAnimation Storyboard.TargetName="ellipse1" Storyboard.TargetProperty="Fill.GradientStops[0].Color" To="Pink" Duration="0:0:5"/>
                        <ColorAnimation Storyboard.TargetName="ellipse1" Storyboard.TargetProperty="Fill.GradientStops[1].Color" To="Gold" Duration="0:0:5" />
                        <ColorAnimation Storyboard.TargetName="ellipse1" Storyboard.TargetProperty="Fill.GradientStops[2].Color" To="Gray" Duration="0:0:5" />
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger.Actions>
        </EventTrigger>
    </Window.Triggers>
    <!--Grid:网格布局-->
    <Grid>
        <Ellipse Name="ellipse1" Width="200" Height="200">
            <Ellipse.Fill>
                <RadialGradientBrush GradientOrigin="0.1,0.1">
                    <RadialGradientBrush.GradientStops>
                        <GradientStop Offset="0.17" Color="Red" />
                        <GradientStop Offset="0.25" Color="Green" />
                        <GradientStop Offset="0.5" Color="Yellow" />
                        <GradientStop Offset="0.65" Color="Red" />
                        <GradientStop Offset="0.7" Color="Green" />
                        <GradientStop Offset="0.82" Color="Yellow" />
                    </RadialGradientBrush.GradientStops>
                </RadialGradientBrush>
            </Ellipse.Fill>
        </Ellipse>
    </Grid>
</Window>

2、效果图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值