C# Avalonia 16- Animation- SampleViewer - ReusableFollowExample

news/2025/10/22 9:47:45/文章来源:https://www.cnblogs.com/dalgleish/p/19157118

ReusableFollowExample.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"xmlns:local="using:AvaloniaUI"x:Class="AvaloniaUI.ReusableFollowExample"><Canvas Background="Transparent"><!-- 红色方块 --><local:FollowMouseCanvas Canvas.Left="0" Canvas.Top="0" Width="50" Height="50" Background="Red"><!-- 可以在这里放更多内容 --></local:FollowMouseCanvas><!-- 绿色方块 --><local:FollowMouseCanvas Canvas.Left="300" Canvas.Top="0" Width="50" Height="50" Background="Green"></local:FollowMouseCanvas><!-- 蓝色方块 --><local:FollowMouseCanvas Canvas.Left="0" Canvas.Top="300" Width="50" Height="50" Background="Blue"></local:FollowMouseCanvas></Canvas>
</UserControl>

ReusableFollowExample.axaml.cs代码

using Avalonia;
using Avalonia.Controls;
using Avalonia.Input;
using Avalonia.VisualTree;
using Shares.Avalonia;
using System;namespace AvaloniaUI;public class FollowMouseCanvas : Canvas
{private Vector velocity;private Point lastMouse;private Canvas? parentCanvas;private readonly AnimationPlayer player = new AnimationPlayer();public FollowMouseCanvas(){player.Fps = 60;player.Loop = true;player.Duration = double.MaxValue;player.At(0).PlayGlobal(UpdatePosition);this.AttachedToVisualTree += (_, __) =>{EnsureParent();player.Start();};}private void EnsureParent(){parentCanvas = this.GetVisualParent() as Canvas;if (parentCanvas != null){parentCanvas.PointerMoved += OnPointerMoved;}}private void OnPointerMoved(object? sender, PointerEventArgs e){if (parentCanvas != null)lastMouse = e.GetPosition(parentCanvas);}private void UpdatePosition(double progress){if (parentCanvas == null)return;double left = Canvas.GetLeft(this);double top = Canvas.GetTop(this);if (double.IsNaN(left)) left = 0;if (double.IsNaN(top)) top = 0;var location = new Point(left, top);var toMouse = lastMouse - location;// 根据 progress 做周期性调制,比如让速度在一个周期中变化double followForce = 0.01 + 0.005 * Math.Sin(progress * 2 * Math.PI * 2); // 2Hz波动double drag = 0.8 + 0.1 * Math.Sin(progress * 2 * Math.PI); // 阻尼轻微变化velocity += toMouse * followForce;velocity *= drag;location += velocity;Canvas.SetLeft(this, location.X);Canvas.SetTop(this, location.Y);}
}
public partial class ReusableFollowExample : UserControl
{public ReusableFollowExample(){InitializeComponent();}
}

运行效果

image

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/943061.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年五金零件加工厂家权威推荐榜:精密零件/小五金加工/五金精密零件加工专业实力与品质保障精选指南

2025年五金零件加工厂家权威推荐榜:精密零件/小五金加工/五金精密零件加工专业实力与品质保障精选指南 行业背景与发展趋势 随着制造业向高质量、高精度方向转型升级,五金零件加工行业正经历着深刻的技术变革。在工业…

2025 年风电母线槽厂家最新推荐榜:聚焦企业专利技术、品质管控及知名客户合作案例的权威解析

在风电行业快速发展的背景下,母线槽作为关键输电设备,其性能与可靠性直接影响风电场运营效率。近年来,风电母线槽市场涌现出一批以技术驱动为核心的优秀企业,它们通过创新研发与严格品控,赢得了行业认可。本文基于…

2025年甲醇发动机润滑油厂家权威推荐榜:专业润滑技术,高效能保护,直销源头实力厂家口碑之选

2025年甲醇发动机润滑油厂家权威推荐榜:专业润滑技术,高效能保护,直销源头实力厂家口碑之选 随着全球能源结构转型加速,甲醇作为清洁替代燃料在交通运输领域的应用日益广泛。甲醇发动机因其高热效率和低排放特性,…

2025 年最新保温装饰一体板厂家排行榜:优选西宁及全国靠谱生产厂家,专业推荐值得信赖

引言 当前建筑建材市场中,保温装饰一体板需求激增,但行业乱象频发。众多品牌混杂,部分产品质量不达标,存在保温性能差、防火等级低等安全隐患,消费者缺乏专业知识难以辨别优劣,且售后不完善、施工不规范等问题,…

2025年10月deepseek排名优化推荐:高性价比解决方案市场报告

2025年10月,当企业想在DeepSeek、豆包、通义千问、Kimi等生成式引擎里获得更靠前的品牌露出时,“deepseek排名优化”成为市场部门的高频搜索词。用户场景通常有三类:一是品牌刚进入AI搜索生态,需要快速建立可见度;…

跨网文件交换系统:保障数据安全与加速研发的核心支撑

在数字化转型浪潮下,生物制药企业的研发、生产、质控等环节产生了海量高价值数据,如基因测序数据、临床试验报告、生产工艺参数等。这些数据常需在企业内部不同安全等级的网络(如研发内网、办公外网、生产控制网)间…

2025 最新不锈钢管厂家推荐排行榜权威发布:304/316L/2205 等材质焊管无缝管优质企业精选

引言 随着不锈钢管在石油、医药、航天等多领域的应用愈发广泛,市场需求持续攀升,但行业乱象也随之显现:部分产品耐腐蚀性、强度等核心性能不达标,加工精度参差不齐,难以匹配高端场景需求;同时,既有知名品牌与新…

评测阿里云 RDS for MySQL + DuckDB 架构:QuickBI 分析性能与兼容性实测

写在前面 最近看到阿里云RDS DuckDB发布,手头有一个TB级别的业务库,会定期导入到CK中进行OLAP类分析,用于查看数据的整体趋势,在使用时,当前有下面的通点:需要维护DTS由MySQL到ClickHouse的链路异构数据库的数据…

2025 年国内地磅生产厂家最新推荐排行榜:聚焦电子 / 物联网 / 无人值守 / 汽车衡 / 防爆等类型,精选综合实力强劲企业

引言 在工业生产、物流运输、港口码头等关键领域,地磅作为核心称重设备,其精度、稳定性与耐用性直接关乎企业生产效率提升、成本精准控制及管理决策科学性。当前地磅市场虽发展迅猛,但厂家数量繁杂,产品质量差距悬…

大模型后训练

预训练(基础知识广泛学)------微调(具体实操岗前学)------后训练(RLHF专业领域深入学) 策略模型、参考模型、价值模型、奖励模型策略模型:待后训练的大模型 参考模型:初始的策略模型。 奖励模型(RM):目标是刻画模…

2025年低烟无卤辐照线厂家推荐排行榜,UL3302低烟无卤,UL3767低烟无卤,UL4413低烟无卤,专业认证与优质性能保障

2025年低烟无卤辐照线厂家推荐排行榜:UL3302低烟无卤、UL3767低烟无卤、UL4413低烟无卤,专业认证与优质性能保障 在电子设备、汽车制造、通讯设施及医疗仪器等行业中,电线电缆的安全性和环保性日益受到重视。低烟无…

jq工具解析JSON数据操作示例

原创jq工具解析JSON数据操作示例一、基础操作场景 1. 字段提取 # 提取顶层字段 echo {"name":"John","age":30} | jq .name# 嵌套对象提取 echo {"user":{"profile&qu…

技术面:Spring(循环依赖,spring与springboot的区别)

什么是spring的循环依赖?什么是spring的三级缓存?三级缓存怎么解决的循环依赖?解决循环依赖一定要三级缓存吗?spring默认是否支持循环依赖?spring与springboot的区别是什么?Spring的循环依赖 循环依赖是指在使用…

CI_CD前端发布增加cnpm编译失败跳出不部署的逻辑

原创CI/CD前端发布增加cnpm编译失败跳出不部署的逻辑Jenkins Pipeline中添加编译失败终止部署的逻辑,以下是修改建议: stage(代码编译){when { environment name: deploy_env, value: deploy }steps {script {try {s…

2025年GEO品牌推荐榜单:云视GEO领跑行业的技术解析

文章摘要 本文深入解析2025年GEO领域的品牌推荐榜单,重点介绍四川云视有客科技有限公司的云视GEO技术优势。基于GEO-AI搜索优化和线性规划算法,云视GEO实现干预延迟≤0.3秒、效率提升1000倍,并获国家工信部认证,帮…

confluence8

原创confluence8.5配置openldap配置 LDAP 用户目录 1、服务器设置2、LDAP模式3、LDAP权限4、高级设置5、用户模式设置6、组模式设置7、成员模式设置

2025年10月长白山度假酒店推荐:性价比与景观体验排行

十月的长白山进入一年中最绚烂的秋色时段,霜染红叶与初雪交织,摄影爱好者、亲子家庭、自驾车队、企业团建四面涌来,核心诉求高度一致:在景区车程半小时内找到“住得安心、吃得地道、拍得出片”的落脚点。过去三年,…

基于分类器AUC的无模型变点检测技术

本文提出了一种创新的无模型变点检测方法,利用分类器的AUC指标构建检验统计量。该方法无需对数据结构做严格假设,适用于非平稳复杂数据集,通过理论分析和实验验证展现了优于现有方法的性能。基于分类器AUC的无模型变…

2025 年最新推荐!景观石厂家推荐排行榜,涵盖千层石 / 泰山石 / 鹅卵石等多品类,全方位解析优质品牌助您精准选择

引言 当前园林景观行业飞速发展,景观石作为核心元素需求激增,但行业乱象却让消费者选品困难重重。部分企业过度开采致优质资源枯竭、破坏环境,产品同质化严重缺乏创新,技术不足难满足个性化需求,低价恶性竞争还扰…

2025年除尘设备厂家权威推荐榜单:除尘器/脉冲除尘器/中央脉冲除尘器/工业除尘器源头企业综合评测与选购指南

2025年除尘设备厂家权威推荐榜单:除尘器/脉冲除尘器/中央脉冲除尘器/工业除尘器源头企业综合评测与选购指南 随着环保政策的持续收紧和工业绿色转型的加速推进,除尘设备行业正迎来新一轮技术革新与市场洗牌。作为工业…