博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF实现抽屉效果
阅读量:6760 次
发布时间:2019-06-26

本文共 2765 字,大约阅读时间需要 9 分钟。

原文:

界面代码(xaml):

后台代码:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Animation;using System.Windows.Media.Imaging;using System.Windows.Navigation;using System.Windows.Shapes;namespace TransAnimation{    ///     /// MainWindow.xaml 的交互逻辑    ///     public partial class MainWindow : Window    {                private bool _Expand = true;        public MainWindow()        {            InitializeComponent();        }        private void Button_Click_1(object sender, RoutedEventArgs e)        {            Expand = !_Expand;        }                public bool Expand        {            get { return _Expand; }            set            {                _Expand = value;                Duration duration = new Duration(TimeSpan.FromSeconds(2));                FillBehavior behavior = FillBehavior.HoldEnd;                DoubleAnimation translateAnim = new DoubleAnimation();                translateAnim.Duration = duration;                translateAnim.FillBehavior = behavior;                RectAnimation clipAnim = new RectAnimation();                clipAnim.Duration = duration;                clipAnim.FillBehavior = behavior;                double delta = 40; //收缩的大小                if (_Expand) // Expand                {                    translateAnim.From = -delta;                    translateAnim.To = 0;                    clipAnim.From = new Rect(delta, 0, Thumb1.ActualWidth, Thumb1.ActualHeight);                    clipAnim.To = new Rect(0, 0, Thumb1.ActualWidth, Thumb1.ActualHeight);                }                else  //Shrink                {                    translateAnim.From = 0;                    translateAnim.To = -delta;                    clipAnim.From = new Rect(0, 0, Thumb1.ActualWidth, Thumb1.ActualHeight);                    clipAnim.To = new Rect(delta, 0, Thumb1.ActualWidth, Thumb1.ActualHeight);                }                spt1.BeginAnimation(TranslateTransform.XProperty, translateAnim);                spc1.BeginAnimation(RectangleGeometry.RectProperty, clipAnim);            }        }    }}

转载地址:http://mgbeo.baihongyu.com/

你可能感兴趣的文章
Java学到什么程度才能叫精通?
查看>>
App上架/更新怕被拒? iOS过审“避雷秘籍”请查收
查看>>
如何写出优质干净的代码,这6个技巧你不能错过!
查看>>
Redis有序集合指令学习
查看>>
222. Count Complete Tree Nodes
查看>>
71. Simplify Path
查看>>
什么是SAP GUI的client
查看>>
深入call apply bind
查看>>
导航栏切换—云南旅游相册
查看>>
关于神经网络的需要注意的概念总结
查看>>
2018年总结
查看>>
containerd发布了CRI修复程序和CVE-2019-5736更新的runc
查看>>
关于vue父子组件之间事件触发及数据传递问题
查看>>
GraphQL:了解Spring Data JPA / SpringBoot
查看>>
每隔1s打印0-5
查看>>
在安卓手机中rem单位border-radius:50%画圆变形的解决方案
查看>>
前端在h5页面调起微信支付接口和支付宝接口(日常笔记)
查看>>
Bundler 2.0 发布
查看>>
自动化部署工具Syncd v1.1.0发布,提供二进制安装包
查看>>
一位老码农的分享:一线程序员该如何面对「中年危机」?
查看>>