当前位置: 首页 > news >正文

C# Avalonia 16- Animation- SampleViewer - SimpleExample

SampleViewer.axaml代码

<Window xmlns="https://github.com/avaloniaui"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"Width="800" Height="600"xmlns:local="using:AvaloniaUI"x:Class="AvaloniaUI.SampleViewer"Title="SampleViewer"><TabControl><TabControl.Styles><Style Selector="TabItem"><Setter Property="FontSize" Value="17"/><Setter Property="FontWeight" Value="Bold"/></Style></TabControl.Styles><TabItem Header="颜色变化效果"><local:SimpleExample/></TabItem><TabItem Header="跟随效果"><local:FollowExample/></TabItem><TabItem Header="可复用跟随效果"><local:ReusableFollowExample/></TabItem><TabItem Header="粒子效果"><local:ParticleEffectExamples/></TabItem></TabControl></Window>

SampleViewer.axaml.cs代码

using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;namespace AvaloniaUI;public partial class SampleViewer : Window
{public SampleViewer(){InitializeComponent();}
}

Tab - SimpleExample.axaml代码

<UserControl xmlns="https://github.com/avaloniaui"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"x:Class="AvaloniaUI.SimpleExample"><UserControl.Resources><SolidColorBrush x:Key="AnimatedBrush"/></UserControl.Resources><StackPanel HorizontalAlignment="Center" VerticalAlignment="Center"><Rectangle Width="50" Height="50"Fill="{StaticResource AnimatedBrush}"/></StackPanel>
</UserControl>

SimpleExample.axaml.cs代码

using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using Avalonia.Media;
using Avalonia.Threading;
using Shares.Avalonia;
using System;namespace AvaloniaUI;public partial class SimpleExample : UserControl
{private readonly SolidColorBrush animatedBrush;private AnimationPlayer animation;public SimpleExample(){InitializeComponent();animatedBrush = (SolidColorBrush)Resources["AnimatedBrush"]!;animation = new AnimationPlayer { Duration = 2.0, Loop = true };animation.At(0).Ease("ElasticEaseOut").PlayLocal(progress =>{// 颜色平滑过渡animatedBrush.Color = InterpolateColor(Colors.Red, Colors.Blue, progress);});animation.Start();}private static Color InterpolateColor(Color from, Color to, double t){byte r = (byte)(from.R + (to.R - from.R) * t);byte g = (byte)(from.G + (to.G - from.G) * t);byte b = (byte)(from.B + (to.B - from.B) * t);return Color.FromRgb(r, g, b);}
}

运行效果

image

 

http://www.zskr.cn/news/25959.html

相关文章:

  • 博客的加载速度和大小的优化、优化再优化
  • Qt和ffmpeg结合打造gb28181推流/支持udp和tcp被动以及tcp主动三种方式
  • 【每日积累】浅谈mvc,mvvm,mvp
  • 66页习题
  • 【React系列】一文让你了解React中Component和PureComponent差异之分
  • DIY ChatGPT 一周狂揽 27k Star「GitHub 热点速览」
  • marmot的一些特点
  • 帮我回答这些问题
  • 使用uWSGI和Nginx部署深度学习模型指南
  • 为什么很多人分不清关联和聚合?
  • 什么情况下,有必要将属性设为类属性而非实例属性?
  • SensatUrban语义分割数据集SensatUrban - MKT
  • 推荐算法参考资料
  • VoxelNeXt 用于 3D 对象检测和跟踪的完全稀疏 VoxelNet(CVPR 2023) - MKT
  • 基于yakit的dvwa靶场暴力破解和代码执行漏洞
  • 视觉和语言-港科大 NMPC 控制下的高效自主导航!SkyVLN:城市环境无人机视觉语言导航与非线性模型预测控制 - MKT
  • Luogu P12376「LAOI-12」Calculate 题解 [ 蓝 ] [ 贪心 ] [ 线性 DP ] [ 前缀和优化 ] [ 范德蒙德卷积 ]
  • Conda、pip以及虚拟环境在Jupyter中的打开方法
  • 每日反思(2025_10_20)
  • java基础9-面向对象进阶
  • 关系运算符
  • Inno Setup 打包脚本模板
  • Claude code cli 的think mode到底是啥?
  • 玄机——Linux后门应急
  • 2025/10/20
  • UI弹窗遮罩屏蔽触发事件的处理
  • 小整数的地址
  • newDay13
  • QT_基础
  • 推荐系统与机器学习在会员服务中的应用