在wpf的开发过程中,页面的切换可以用Visibility来动态控制显示和隐藏,但是在wpf的开发中,关键还是要增加一些动画效果,提高系统的用户体验,自己可根据API写一些函数来实现简单的动画,网上也有不少开源的动态切换效果。
随着web的开发兴起,wpf虽然也能实现不少好看的效果,但是社区支持的热度也不是那么高,都是几年前所支持的类库了。
使用PixelLab.Wpf可以做一些动态效果的wpf切换,而且是开源的,github的网址是:https://github.com/thinkpixellab/bot
下边具体介绍一下使用方法:
//定义pixlab的命名空间,并需要在app或者style的xaml页面中,配置PixelLab的切换效果;
xmlns:lib="clr-namespace:PixelLab.Wpf.Transitions;assembly=PixelLab.Wpf"
//切换效果很多,可将数组中的lib上都配置上,在github的代码中有
<x:Array x:Key="MyTransitions" Type="{x:Type lib:Transition}">
<lib:Transition TextSearch.Text="Base"/>
<lib:FadeTransition Duration="0:0:0.5"
TextSearch.Text="Fade"/>
..............
//在要添加切换的wpf页面上,添加pixlab的命名空间
xmlns:lib="clr-namespace:PixelLab.Wpf.Transitions;assembly=PixelLab.Wpf
//添加切换控件的承载控件,类型是ContentControl,通过更换其中的控件,达到切换的效果
<lib:TransitionPresenter x:Name="_mainTranp" Transition="{Binding MainTrans}" Content="{Binding TransObject}"/>
在这里使用绑定的方式,mvvmlight的使用方式可在网上搜索,Transition是切换的效果,即在前边定义的切换效果,Content是其中的切换控件
//动画切换的效果对象
private Transition _mainTrans = null;
public Transition MainTrans
{
get
{
return _mainTrans;
}
set
{
Set(() => MainTrans, ref _mainTrans, value);
}
}
//动画切换的内容控件
private object _transObject = null;
public object TransObject
{
get
{
return _transObject;
}
set
{
Set(() => TransObject, ref _transObject, value);
}
}
//代码中按以下设置即可达到效果
TransObject = null;
MainTrans = "切换的效果"
TransObject = "切换的对象";
以上即能达到控件的切换效果。