基于vs和C#的WPF应用之动画3

注:1、在内部和外部使用缓动函数


<Grid.Resources>
<PowerEase x:Key="powerease" Power="3" EasingMode="EaseInOut"/>
</Grid.Resources>
<DoubleAnimation EasingFunction="{StaticResource powerease}"/>


 <DoubleAnimation.EasingFunction>
 <PowerEase EasingMode="EaseInOut" Power="3"/>
 </DoubleAnimation.EasingFunction>

一、画布

<Canvas x:Name="canvas3" Width="200" Height="200" Grid.Row="0" Grid.Column="1">
            <Canvas.Triggers>
                <EventTrigger RoutedEvent="Loaded">
                    <BeginStoryboard Storyboard="{StaticResource third_sb}"/>
                </EventTrigger>
            </Canvas.Triggers>

            <!--背景-->
            <Ellipse Width="100" Height="100" Fill="#f2f4f6" Margin="50"/>
            <Label Content="Loading"
               FontSize="16"
               Margin="50"
               FontFamily="Times New Roman"
               Foreground="#6b48ff"
               FontWeight="Bold"
               Width="100" 
               Height="100"
               VerticalContentAlignment="Center" 
               HorizontalContentAlignment="Center"/>

            <Ellipse Name="third_e1" Style="{StaticResource thirdStyle_Ellipse}" >
                <Ellipse.RenderTransform>
                    <RotateTransform Angle="0"/>
                </Ellipse.RenderTransform>
            </Ellipse>
            <Ellipse Name="third_e2" Style="{StaticResource thirdStyle_Ellipse}">
                <Ellipse.RenderTransform>
                    <RotateTransform Angle="0"/>
                </Ellipse.RenderTransform>
            </Ellipse>
            <Ellipse Name="third_e3" Style="{StaticResource thirdStyle_Ellipse}">
                <Ellipse.RenderTransform>
                    <RotateTransform Angle="0"/>
                </Ellipse.RenderTransform>
            </Ellipse>
            <Ellipse Name="third_e4" Style="{StaticResource thirdStyle_Ellipse}" >
                <Ellipse.RenderTransform>
                    <RotateTransform Angle="0"/>
                </Ellipse.RenderTransform>
            </Ellipse>
            <Ellipse Name="third_e5" Style="{StaticResource thirdStyle_Ellipse}">
                <Ellipse.RenderTransform>
                    <RotateTransform Angle="0"/>
                </Ellipse.RenderTransform>
            </Ellipse>
        </Canvas>

二、动画故事板

 <Storyboard x:Key="third_sb" Storyboard.TargetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)" RepeatBehavior="Forever">
            <DoubleAnimation Storyboard.TargetName="third_e1" To="360" Duration="0:0:2"  EasingFunction="{StaticResource powerease}" AccelerationRatio="0.1" DecelerationRatio="0.9"/>
            <!--加速比 减速比-->
            <DoubleAnimation Storyboard.TargetName="third_e2" To="360" Duration="0:0:2" EasingFunction="{StaticResource powerease}" AccelerationRatio="0.3" DecelerationRatio="0.7"/>
            <DoubleAnimation Storyboard.TargetName="third_e3" To="360" Duration="0:0:2" EasingFunction="{StaticResource powerease}" AccelerationRatio="0.5" DecelerationRatio="0.5"/>
            <DoubleAnimation Storyboard.TargetName="third_e4" To="360" Duration="0:0:2" EasingFunction="{StaticResource powerease}" AccelerationRatio="0.7" DecelerationRatio="0.3"/>
            <DoubleAnimation Storyboard.TargetName="third_e5" To="360" Duration="0:0:2" EasingFunction="{StaticResource powerease}" AccelerationRatio="0.9" DecelerationRatio="0.1"/>
        </Storyboard>

三、外部样式

 <!--第三个动画圆的样式-->
 <Style x:Key="thirdStyle_Ellipse" TargetType="Ellipse">
     <Setter Property="Width" Value="25"/>
     <Setter Property="Height" Value="25"/>
     <Setter Property="Canvas.Left" Value="87.5"/>
     <Setter Property="Canvas.Top" Value="50"/>
     <Setter Property="Fill" Value="#0d3f67"/>
     <Setter Property="RenderTransformOrigin" Value="0.5,2"/>
 </Style>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#运用WPF实现游戏动画制作 从QXGame(WPF GAME ENGINE)游戏引擎公布以来,受到很多朋友的热切关注,于是乎有了写教程的想法。那么从今天开始,我将带领大家一步一步的学会如何使用纯C#开发WPF/Silverlight游戏引擎,过程中我会尽量的开源,并对相关小技巧进行解释和介绍,比较复杂的算法原理我会给大家一条绝对可行的思路,这里只想客观的告诉读者下面两点: 一、WPF开发的是桌面应用程序,自包括Vista在内以后的Windows系列操作系统均大量以之为主流图形工具,即将全面取代Winform,并且Windows 7将集成.NET3.5+框架,在当今Windows系列操作系统占据90%同类市场的现状下,这意味着什么呢? 二、Silverlight基于一个约4M左右的MINI型.NET框架,目前版本2.0,3.0的beta英文版,从发展趋势看是绝对有与Flash抗衡并且在未来超越它的可能性。Silverlight的优势更表现在它可以用一切.NET语言例如C#,VB.NET,C++.NET等开发,拓展度与可以参与开发的人群远远高于只能用AS开发的FLASH。 转入正题,网上已经有很多关于如何创建WPF/Silverlight动画的教程,但是均为使用Blend工具制作,或直接写在xaml代码内的动画,这样往往造成很多朋友误以为其实WPF/Silverlight不就是MS的Flash?诚然,如果您真的像那些教程里说的去开发WPF/Silverlight程序,我个人觉得一点意义都没有。这样开发出来的东西根本就超越不了Flash,那何苦还要投入如此多的精力来学习它? 所以本系列教程将全方位的以纯C#程序语言进行动态创建一切可视化对象,从而构建出一个如QXGame(WPF GAME ENGINE)游戏引擎,这才是我本系列教程希望达到的目的。 (注:本教程使用的开发工具为Visual studio 2008 版本sp1)
### 回答1: # WPF(Windows Presentation Foundation)技术 WPF是微软开发的一种桌面应用程序开发框架,它为Windows的GUI开发提供了一整套全新的、强大的标准开发工具。WPF突破了传统的窗体、控件开发方式,引入了基于XAML的声明式语法,强调了数据驱动、视觉化和交互式的设计方式。 WPF技术集成了多种技术,如XAML、CLR、WCF、LINQ等,使得可视化应用程序的开发变得更加简单和快速,同时WPF具备很强的扩展性和可定制性,方便开发者进行个性化的开发。 WPF提供的一些功能如下: 1. 丰富的控件库:WPF提供多种内置控件,同时支持自定义控件的开发。 2. 数据绑定:使用WPF可以很方便地实现控件与数据之间的绑定,同时支持多种数据源。WPF提供了很多数据绑定的方式,如简单绑定、多级绑定、命令绑定等等。 3. 视觉化效果:WPF提供了很多内置的特效库,如平移、变形、旋转、透明度等等,可以方便地实现丰富的UI效果。 4. 动画效果:WPF提供了很多内置的动画库,可以很容易地实现动态效果。 5. 多媒体支持:WPF支持多种多媒体格式,可以很方便地实现音频、视频的播放。 总之,WPF是一种强大、灵活、易用的技术,适合开发各种类型的桌面应用程序,包括ERP、CRM、OA、管理系统、多媒体应用、游戏等等。在未来,WPF将继续发展壮大,为开发者带来更多的便利和创新。 ### 回答2: WPF(Windows Presentation Foundation)是一种基于.NET框架和XAML语言的用户界面开发工具。它是微软推出的一种新型的高级用户界面技术,可以用来开发各种类型的Windows应用程序。WPF的主要特点包括可扩展性、动画效果、多媒体和3D支持、数据绑定等。 WPF与传统的WinForms相比,具有更强的可扩展性和灵活性。WPF采用基于XAML的声明式语法,可以更容易地实现界面和逻辑的分离。WPF也支持样式和模板,允许开发者对控件外观和行为进行个性化定制。同时,WPF中的布局机制和布局控件,也能够帮助开发者更方便地实现复杂的布局。 WPF还支持强大的动画效果,包括平移、旋转、缩放和渐变等多种动画效果。开发者可以使用动画来增强用户交互和视觉体验,提高应用的吸引力和交互性。 WPF还提供了强大的多媒体和3D支持,可以轻松地嵌入音频、视频和3D图形等各种多媒体元素。开发者可以利用WPF创建富有视觉效果和体验的应用程序,从而增加用户的满意度和忠诚度。 总之,WPF是一种强大的用户界面开发工具,可以帮助开发者快速构建出视觉效果、交互性和可扩展性都很高的Windows应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值