在这个例子中我们实现了一个非常酷的卡牌导航,使用了很多滑动方面的动作。
借鉴了来自于Google的优秀质感图标。
滑动手势
每一张卡片�都有一个Direction
方向属性设置为向上Up
的滑动手势SwipeGesture
,意思是在通过向上滑动来激活滑动手势SwipeGesture
。
<pre>
<SwipeGesture ux:Name="swipe" Direction="Up" Type="Active"/>
</pre>
设置Type
属性为Active
意思是这个手势类似一个转换开关switch的工作原理, 他将在向收到指定的方向滑动后被激活,且状态一直处于“打开”状态,直到再次滑动后退回。
接着看下面,我们使用了一个滑动动画SwipingAnimation
来声明在用户滑动的时候将要发生什么事情,上面的Source
属性指明哪一个才是这个动画需要响应的滑动手势SwipeGesture
。
<pre>
<SwipingAnimation Source="swipe">
<Move Target="topPanel" Y="-0.3" RelativeTo="Size" Duration="0.5" />
<Change bottomPanelScaling.X="1" Duration="0.5"/>
<Change bottomPanelScaling.Y="1" Duration="0.5"/>
<Change bottomPanel.Opacity="1" Duration="0.5" />
</SwipingAnimation>
</pre>
每一个卡牌有两个层,上面的"topPanel"和下边的"bottomPanel",当我们向上滑动的时候,顶层图层"topPanel"在Y轴上被移动(Y direction)到负数,同时底部图层"bottomPanel"被比例缩放。
导航
在卡牌间的导航是通过LinearNavigation
和SwipeNavigate
来实现的。
<pre>
<LinearNavigation ux:Name="nav" Easing="QuadraticOut" />
<SwipeNavigate SwipeDirection="Left" SwipeEnds="Closed"/>
</pre>
我们使用进入动画EnteringAnimation
和退出动画ExitingAnimation
来使得卡牌产生动画效果,当他被导航到或从他导航出的时候。因为我们需要展示下一张卡片的边缘,所以我们要添加一些缩放Scale
到触发器。
<pre>
<EnteringAnimation Scale="0.5">
<Move X="-1.4" RelativeTo="ParentSize" Duration="0.5"/>
</EnteringAnimation>
<ExitingAnimation Scale="0.5">
<Move X="1.4" RelativeTo="ParentSize" Duration="0.5"/>
</ExitingAnimation>
</pre>
这些不在活跃状态的卡�牌,需要去掉些不透明效果同时也要轻微地按比例缩小点点,这些是在ActivatingAnimation
触发器里来实现的。
<pre>
<ActivatingAnimation>
<Change self.Opacity="1" Duration="0.5"/>
<Change pageScaling.Factor="1" Duration="0.5" />
</ActivatingAnimation>
</pre>
英文原文:https://www.fusetools.com/examples/swipe-gesture-reveal
Tag:Fuse教程, Fuse案例
发布时间:2016年05月21日
博客被黑,挪窝简书安家……