WPF 动画收缩菜单

原文:https://www.cnblogs.com/dawn-cn/p/4086750.html 

做WPF项目的时候,有时候为了突出详细内容。我们需要把菜单功能隐藏掉。如果简单的隐藏显示我们直接用:Visibility="Hidden" Visibility="Visible"   对象名.Visibility=new System.Windows.Visibility 即可解决问题。软件用户体验是关键。直接上效果图。

(菜单展示效果)

(菜单缩进效果)

 

 

关键点:

DoubleAnimation 类可创建两个目标值之间的过渡。 若要设置其目标值,请使用其 FromTo 和 By 属性。 下表概括了如何将 FromTo 和 By 属性一起使用或单独使用来确定动画的目标值。

 

指定的属性

结果行为

From

动画从 From 属性指定的值继续到正在进行动画处理的属性的基值或前一动画的输出值,具体取决于前一动画的配置方式。

From 和 To

动画从 From 属性指定的值继续到 To 属性指定的值。

From 和 By

动画从 From 属性指定的值继续到 From 与 By 属性之和所指定的值。

To

动画从进行动画处理的属性的基值或前一动画的输出值继续到 To 属性指定的值。

By

动画从正在进行动画处理的属性的基值或前一动画的输出值继续到该值与 By 属性指定的值之和。

 

复制代码

复制代码

 1   private DoubleAnimation c_daListAnimation; 3   public bool c_bState = true;//记录菜单栏状态 false隐藏 true显示
 4 
 5 
 6    private void Window_Loaded(object sender, RoutedEventArgs e)
 7    {
 8 
 9      c_daListAnimation = new DoubleAnimation();
10      c_daListAnimation.BeginTime = TimeSpan.FromSeconds(1);//获取或设置此 Timeline 将要开始的时间。
11      c_daListAnimation.FillBehavior = FillBehavior.HoldEnd;//获取或设置一个值,该值指定 Timeline 在活动周期结束后的行为方式。
12      c_daListAnimation.Duration = new Duration(TimeSpan.FromSeconds(0.5));//获取或设置此时间线播放的时间长度,而不是计数重复。
13 
14    }
15 
16    public void ShowHiddenMenu() {
17  
18     if (c_changeState)
19       {
20      
22        c_changeState = false;
23        c_daListAnimation.From = 0;
24        c_daListAnimation.To = -271;
25  
26     }
27     else
28    {
31       c_changeState = true;
32       c_daListAnimation.From = -271;
33       c_daListAnimation.To = 0;
34  
35     }
36      c_daListAnimation.BeginTime = TimeSpan.FromSeconds(0.01);//设置动画将要开始的时间
37      GridTranslateTransform.BeginAnimation(TranslateTransform.XProperty, c_daListAnimation);39  }

复制代码

 

 

复制代码

 1   <Grid x:Name="gird" Focusable="False" >
 2         <Grid.ColumnDefinitions>
 3             <ColumnDefinition Width="271"/>
 4             <ColumnDefinition Width="*"/>
 5         </Grid.ColumnDefinitions>
 6         <Grid.RenderTransform>
 7             <TranslateTransform x:Name="GridTranslateTransform" X="0" Y="0" />
 8         </Grid.RenderTransform>
 9 
10         <Button  Focusable="False"  Content="" x:Name="Directory_BT" Tag="1" Height=" 97" FontSize="30" VerticalAlignment="Center" Margin="0,-100,0,0" Grid.Column="1" >
11             <Button.Background>
12                 <ImageBrush ImageSource="/RimeBoxShowUIB;component/StyleManage/Default/btn/btn_menu.png"/>
13             </Button.Background>
14         </Button>
15         <Border Focusable="False" x:Name="TreeMenuBt" BorderThickness="0" HorizontalAlignment="Left" Width="271" >
38         </Border>
39 
40     </Grid>

复制代码

WPF(Windows Presentation Foundation)是一种Microsoft开发的用户界面框架,可以用来创建富客户端应用程序。WPF框架提供了丰富的动画功能,能够实现窗体展开和收缩动画效果。 要实现窗体展开和收缩动画效果,可以借助WPF框架提供的动画类和属性。首先,我们需要定义一个动画对象,可以使用DoubleAnimation类来指定动画的目标属性和起始值,并设置动画的持续时间和缓动函数。 比如,我们可以定义一个名为widthAnimation的动画对象,将它的目标属性设置为窗体的宽度属性。然后,通过在代码中调用Storyboard类来播放动画。 在展开和收缩窗体的过程中,可以通过更改窗体的尺寸来实现动画效果。通过使用代码控制窗体的尺寸属性,我们可以创建展开和收缩动画效果。 如果要实现窗体展开动画,可以通过将窗体的宽度逐渐增加到目标宽度来实现。如果要实现窗体收缩动画,可以通过将窗体的宽度逐渐减小到目标宽度来实现。在播放动画时,可以使用AnimateTo()方法将动画应用到窗体上。 除了动画效果,你还可以通过WPF提供的其它功能来增强用户界面的交互体验。例如,通过添加鼠标事件来触发动画,或者使用触摸事件来作为触发展开和收缩效果的手势等。 总之,使用WPF框架可以方便地实现窗体展开和收缩动画效果。通过定义动画对象,并在代码中控制窗体的尺寸属性,可以创建出独特的展开和收缩动画效果,提升用户界面的交互体验。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值