WPF入门教学十八 动画入门

WPF(Windows Presentation Foundation)是微软推出的一种用于创建Windows客户端应用程序的用户界面框架。WPF 提供了丰富的动画支持,可以通过XAML或者代码来实现各种动画效果。以下是一个简单的WPF动画入门教学,我们将使用XAML来创建一个简单的淡入淡出动画。

1. 创建一个新的WPF项目

首先,打开Visual Studio并创建一个新的WPF应用程序项目。

2. 添加动画到XAML

在MainWindow.xaml文件中,我们可以添加一个Button和一个TextBlock,并为TextBlock设置一个淡入淡出的动画效果。

复制代码
复制代码
<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="WPF Animation Example" Height="350" Width="525">
    <Grid>
        <Button Content="Animate" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="0,50,0,0" Click="Button_Click"/>
        <TextBlock x:Name="AnimatedText" Text="Hello, WPF Animation!" FontSize="24" HorizontalAlignment="Center" VerticalAlignment="Center"/>
    </Grid>
</Window>

3. 编写动画代码

在MainWindow.xaml.cs文件中,我们需要编写代码来启动动画。

复制代码
cs 复制代码
using System.Windows;
using System.Windows.Media.Animation;

namespace WpfApp1
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            DoubleAnimation fadeOut = new DoubleAnimation(1.0, 0.0, new Duration(TimeSpan.FromSeconds(1)));
            DoubleAnimation fadeIn = new DoubleAnimation(0.0, 1.0, new Duration(TimeSpan.FromSeconds(1)));

            Storyboard sb = new Storyboard();
            sb.Children.Add(fadeOut);
            sb.Children.Add(fadeIn);

            Storyboard.SetTarget(fadeOut, AnimatedText);
            Storyboard.SetTarget(fadeIn, AnimatedText);

            Storyboard.SetTargetProperty(fadeOut, new PropertyPath(Brush.OpacityProperty));
            Storyboard.SetTargetProperty(fadeIn, new PropertyPath(Brush.OpacityProperty));

            fadeOut.Completed += (s, _) => sb.BeginAnimation(Brush.OpacityProperty, fadeIn);

            sb.Begin();
        }
    }
}

4. 运行程序

现在,当你运行程序并点击"Animate"按钮时,TextBlock应该会执行一个淡入淡出的动画效果。

解释

  • DoubleAnimation 是WPF中用于创建数值变化的动画类。
  • Storyboard 是用来管理一组动画的容器。
  • TargetTargetProperty 用于指定动画作用的对象和属性。
  • Completed 事件用于在动画完成时触发后续动作。

这个例子展示了如何在WPF中使用XAML和C#代码来创建简单的动画效果。WPF的动画系统非常强大,可以创建复杂的交互式用户界面。你可以进一步探索WPF的StoryboardAnimation类和其他相关功能来创建更加丰富和动态的用户体验。

相关推荐
小北方城市网2 小时前
微服务注册中心与配置中心实战(Nacos 版):实现服务治理与配置统一
人工智能·后端·安全·职场和发展·wpf·restful
cjp5603 小时前
017.WPF使用自定义样式
wpf
故事不长丨5 小时前
C#log4net详解:从入门到精通,配置、实战与框架对比
c#·.net·wpf·log4net·日志·winform·日志系统
cjp5608 小时前
002.为C#动态链接库添加wpf窗体
microsoft·c#·wpf
bugcome_com10 小时前
WPF控件模板
wpf
上海物联网1 天前
Prism WPF中的自定义区域适配器解决了什么问题?在项目中怎么实现一个自定义适配器
wpf
code bean1 天前
【C#高级】TCP请求-应答模式的WPF应用实战
tcp/ip·c#·wpf
极客智造1 天前
WPF 实现可复用晶圆 n*n 网格自定义控件(支持选中与圆形裁剪)
wpf
上海物联网2 天前
Prism Regions-自定义区域适配器实现开发者将任意 WPF 控件转换为可动态加载视图的区域容器
面试·wpf
Aevget3 天前
DevExpress WPF中文教程:Data Grid - 如何绑定到有限制的自定义服务(四)?
wpf·界面控件·devexpress·ui开发·.net 10