最近在实现WPF的图片展开动画,一些比较基础的动画效果的实现方法在网上都能够找到,而扇形展开动画一直没有找到,不知道是个人的搜索技术不行,还是本来实现的少。
于是,只能自己动手想办法实现这种效果,所幸,最后还是让我想到了实现的方法(路径动画模拟实现)。
图片的展开动画,这里都是设置了图片控件的OpacityMask属性,然后再动画中动态修改OpacityMask属性模板里面的某个属性值以达到想要的视觉效果。
最开始的时候,想模仿“旋转展开方法”来实现扇形展开的(一条直线,以一个端点做支点,旋转直线),不过发现端点控制修改后并不是自己想要的效果,最后看了一些基于路径的动画,想着是否使用路径,其中两个端点固定,再移动另外一个端点来显示出图片,最后实验证明确实是可以的。
下面就分享一下实现代码:
1) 下面是前端用来展现动画的图片。这里因为要实现移出移入等效果,所以使用了Canvas作为父级控件。
1 <Canvas Grid.Row="1" Name="canvas1" Background="Transparent" ClipToBounds="True"> 2 <Image Name="aniCon" Source="../Images/a.jpg" Canvas.Left="40" Canvas.Top="25" Width="500"> 3 </Image> 4 </Canvas>