博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Shape流动效果
阅读量:5924 次
发布时间:2019-06-19

本文共 2939 字,大约阅读时间需要 9 分钟。

原文:

由Xaml可以看出核心就是一个FluidBehavior,效果,就不过多阐述了

最核心的就是用一个定时器对于Shape的StrokeDashOffset进行改变,其中抽象FlowRate以及WhetherFluid用于控制流动速率以及是否流动

using System;using System.Windows;using System.Windows.Interactivity;using System.Windows.Shapes;using System.Windows.Threading;namespace MvvmLight1{    ///     /// 流动行为    ///     public class FluidBehavior : Behavior
{ #region 依赖属性 ///
/// 流动速度 /// public int FlowRate { get { return (int)GetValue(FlowRateProperty); } set { SetValue(FlowRateProperty, value); } } // Using a DependencyProperty as the backing store for FlowRate. This enables animation, styling, binding, etc... public static readonly DependencyProperty FlowRateProperty = DependencyProperty.Register("FlowRate", typeof(int), typeof(FluidBehavior), new PropertyMetadata(1)); ///
/// 是否流动 /// public bool WhetherFluid { get { return (bool)GetValue(WhetherFluidProperty); } set { SetValue(WhetherFluidProperty, value); } } // Using a DependencyProperty as the backing store for WhetherFluid. This enables animation, styling, binding, etc... public static readonly DependencyProperty WhetherFluidProperty = DependencyProperty.Register("WhetherFluid", typeof(bool), typeof(FluidBehavior), new PropertyMetadata(true, OnWhetherFluidChanged)); private static void OnWhetherFluidChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { var behavior = d as FluidBehavior; if (Convert.ToBoolean(e.NewValue)) { behavior._timer.Start(); } else { behavior._timer.Stop(); } } #endregion protected override void OnAttached() { base.OnAttached(); Fluid(); } private readonly DispatcherTimer _timer = new DispatcherTimer(); //流动 private void Fluid() { _timer.Tick += (sender, e) => { AssociatedObject.StrokeDashOffset -= FlowRate; }; _timer.Interval = TimeSpan.FromSeconds(1d / 60); if (WhetherFluid) { _timer.Start(); } } }}

 

转载地址:http://gnivx.baihongyu.com/

你可能感兴趣的文章
首次出手区块链创企,Facebook的区块链野望
查看>>
Dubbo 生态添新兵,Dubbo Admin 发布 v0.1
查看>>
结合P2P软件使用Ansible分发大文件
查看>>
12月18日云栖精选夜读 | Java 中创建对象的 5 种方式!
查看>>
Rethink Deepfakes,浅谈深度学习落地
查看>>
阿里云搭建的最好代刷网
查看>>
android.support.v7.widget.SearchView开发记录(一)
查看>>
想做一个合格的C语言程序员,从这篇文章开始
查看>>
confluence的初步认识和了解
查看>>
Python 成功上位,正逐渐与 Java 拉开差距
查看>>
分类模型的评价方法
查看>>
中后台管理系统 HeyUI Admin 发布
查看>>
Vant Weapp 0.5.5 发布,有赞小程序 UI 组件库
查看>>
Activiti 7.1.4 发布,业务流程管理与工作流系统
查看>>
小微企业阿里云最佳实践系列(一):ECS 服务器与 RDS 数据库
查看>>
ViewModelLocator
查看>>
SQL Server Replication的分发服务器的快照文件夹位置查找
查看>>
微服务系列-Spring Cloud优质项目推荐
查看>>
WPF 图片灰度处理
查看>>
如何把高版本的sqlserver 还原到低版本的 sqlserver
查看>>