栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

WPF滑动按钮控件

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

WPF滑动按钮控件

效果图片

前台代码


    
        
            
            
        
        
            
                
            
        
        
            
                
                    
                
            
            
    


后台代码(if和else中基本上是重的,懒得重写方法了直接修改了一下复制粘贴过去的)

private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            if (this.grid.Tag.ToString() == "0")
            {
                EllipseWidthChange();

                //椭圆移动动画
                Storyboard ellipse_Move = new Storyboard();

                DoubleAnimation ellipse_MoveAniamtion = new DoubleAnimation();
                ellipse_MoveAniamtion.From = 0;
                ellipse_MoveAniamtion.To = 55;
                ellipse_MoveAniamtion.Duration = new TimeSpan(0, 0, 0, 0, 400);

                Storyboard.SetTarget(ellipse_MoveAniamtion, ellipse);
                Storyboard.SetTargetProperty(ellipse_MoveAniamtion, new PropertyPath("(Canvas.Left)"));
                ellipse_Move.Children.Add(ellipse_MoveAniamtion);
                ellipse_Move.Begin();

                //文字移动
                label.Content = "OFF";

                Storyboard label_Move = new Storyboard();

                DoubleAnimation label_MoveAnimation = new DoubleAnimation();
                label_MoveAnimation.From = 6;
                label_MoveAnimation.To = 40;
                label_MoveAnimation.Duration = new TimeSpan(0, 0, 0, 0, 400);

                Storyboard.SetTarget(label_MoveAnimation, label);
                Storyboard.SetTargetProperty(label_MoveAnimation, new PropertyPath("(Canvas.Right)"));
                label_Move.Children.Add(label_MoveAnimation);
                label_Move.Begin();

                //颜色变化
                Storyboard background_Change = new Storyboard();

                ColorAnimation background_ChangeAnimation = new ColorAnimation();
                background_ChangeAnimation.From = Colors.LimeGreen;
                background_ChangeAnimation.To = Colors.IndianRed;
                background_ChangeAnimation.Duration = new TimeSpan(0, 0, 0, 0, 4);

                Storyboard.SetTarget(background_ChangeAnimation, rectangle);
                Storyboard.SetTargetProperty(background_ChangeAnimation, new PropertyPath("(Rectangle.Fill).(SolidColorBrush.Color)"));
                background_Change.Children.Add(background_ChangeAnimation);
                background_Change.Begin();

                this.grid.Tag = 1;
            }
            else
            {
                EllipseWidthChange();

                //椭圆移动动画
                Storyboard ellipse_Move = new Storyboard();

                DoubleAnimation ellipse_MoveAnimation = new DoubleAnimation();
                ellipse_MoveAnimation.From = 55;
                ellipse_MoveAnimation.To = 0;
                ellipse_MoveAnimation.Duration = new TimeSpan(0, 0, 0, 0, 400);

                Storyboard.SetTarget(ellipse_MoveAnimation, ellipse);
                Storyboard.SetTargetProperty(ellipse_MoveAnimation, new PropertyPath("(Canvas.Left)"));
                ellipse_Move.Children.Add(ellipse_MoveAnimation);
                ellipse_Move.Begin();


                //文字移动
                label.Content = "ON";

                Storyboard label_Move = new Storyboard();

                DoubleAnimation label_MoveAnimation = new DoubleAnimation();
                label_MoveAnimation.From = 49;
                label_MoveAnimation.To = 6;
                label_MoveAnimation.Duration = new TimeSpan(0, 0, 0, 0, 400);

                Storyboard.SetTarget(label_MoveAnimation, label);
                Storyboard.SetTargetProperty(label_MoveAnimation, new PropertyPath("(Canvas.Right)"));
                label_Move.Children.Add(label_MoveAnimation);
                label_Move.Begin();

                //颜色变化
                Storyboard background_Change = new Storyboard();

                ColorAnimation background_ChangeAnimation = new ColorAnimation();
                background_ChangeAnimation.From = Colors.IndianRed;
                background_ChangeAnimation.To = Colors.LimeGreen;
                background_ChangeAnimation.Duration = new TimeSpan(0, 0, 0, 0, 4);

                Storyboard.SetTarget(background_ChangeAnimation, rectangle);
                Storyboard.SetTargetProperty(background_ChangeAnimation, new PropertyPath("(Rectangle.Fill).(SolidColorBrush.Color)"));
                background_Change.Children.Add(background_ChangeAnimation);
                background_Change.Begin();

                this.grid.Tag = 0;
            }
        }

        /// 
        /// 椭圆缩放动画
        /// 
        private void EllipseWidthChange()
        {
            Storyboard ellipse_Width = new Storyboard();

            DoubleAnimation ellipse_WidthAniamtion = new DoubleAnimation();
            ellipse_WidthAniamtion.From = 36;
            ellipse_WidthAniamtion.To = 50;
            ellipse_WidthAniamtion.Duration = new TimeSpan(0, 0, 0, 0, 200);
            ellipse_WidthAniamtion.AutoReverse = true;

            Storyboard.SetTarget(ellipse_WidthAniamtion, ellipse);
            Storyboard.SetTargetProperty(ellipse_WidthAniamtion, new PropertyPath("Width"));
            ellipse_Width.Children.Add(ellipse_WidthAniamtion);
            ellipse_Width.Begin();
        }

如果有不恰当的地方欢迎大家留言。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/911168.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号