如何使用WPF 实现百叶窗切换动画

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用WPF 实现百叶窗切换动画相关的知识,希望对你有一定的参考价值。

参考技术A 后台代码:
public MainWindow()

InitializeComponent();
pg = new PathGeometry();
timer = new DispatcherTimer();


PathGeometry pg = null;
DispatcherTimer timer = null;
//设置矩形的大小
double size = 100;
//矩形的初始宽度
double size1 = 0;
private void button1_Click(object sender, RoutedEventArgs e)

if (pg != null)

pg.Clear();

timer.Interval = TimeSpan.FromMilliseconds(1);
timer.Tick += new EventHandler(timer_Tick);
timer.Start();


private void timer_Tick(object sender, EventArgs e)

if (size1 <= size)

for (int i = 0; i < Math.Ceiling(image1.Width / size); i++)

RectangleGeometry rg = new RectangleGeometry();

//设置矩形区域大小
rg.Rect = new Rect(i * size, 0, size1, image1.Height);

//合并几何图形
pg = Geometry.Combine(pg, rg, GeometryCombineMode.Union, null);
image1.Clip = pg;


else

timer.Stop();
size1 = 0;

size1++;



根据这个效果,上下百叶窗效果也很容易实现,并改变白色矩形形状也就容易多了,剩下自己研究吧。

以上是关于如何使用WPF 实现百叶窗切换动画的主要内容,如果未能解决你的问题,请参考以下文章

WPF 中Image切换ImageSource做动画

向“切换”发送垃圾邮件时,C#/WPF 处理活动的故事板动画

WPF动画 - Loading加载动画

uwp 图片切换动画 使用帧动画

窗体切换动画 overridePendingTransition

HTML中 CSS+DIV+JS 怎么实现图片切换的特效呢, 百叶窗,淡出淡进之类的呢?