【WPF】利用Ellipse或Rectangle制作圆形进度条

【WPF】利用Ellipse或Rectangle制作圆形进度条_第1张图片 

 

        public MainViewModel()
        {
            Task.Run(() =>
            {
                while(true)
                {
                    Application.Current.Dispatcher.Invoke(() =>
                    {
                        double second = DateTime.Now.Second * 100 / 60;
                        ProcessValue = CalcProgress(second, 50, 12);
                        ProcessNumber = second + "%";
                    });
                }
            });
        }

        /// 
        /// 计算进度条百分比
        /// 
        /// 百分比
        /// 圆角的度数
        /// 边框厚度
        /// 
        private DoubleCollection CalcProgress(double progress, double radius, double thickness)
        {
            var r = radius - thickness / 2;
            var perimeter = 2 * Math.PI * r / thickness;
            var step = progress / 100 * perimeter;
            var result = new DoubleCollection() { step, 1000 };
            return result;
        }

        private DoubleCollection processValue;
        /// 
        /// 圆形进度条数组
        /// 
        public DoubleCollection ProcessValue
        {
            get { return processValue; }
            set { processValue = value;RaisePropertyChanged();}
        }

        private string processNumber;
        /// 
        /// 进度
        /// 
        public string ProcessNumber
        {
            get { return processNumber; }
            set { processNumber = value; RaisePropertyChanged(); }
        }
            
                
                    
                        
                         
                    
                    
                    
                        
                            
                                
                                
                            
                        
                        
                            
                        
                    
                    
                
                
                    
                        
                    
                    
                    
                    
                        
                            
                                
                                
                            
                        
                        
                            
                        
                        
                            
                        
                    
                    
                
            

RenderTransformOrigin:渲染动画的起点

值为坐标的形式,范围(0,0)到(1,1),默认(0,0)

【WPF】利用Ellipse或Rectangle制作圆形进度条_第2张图片

【WPF】利用Ellipse或Rectangle制作圆形进度条_第3张图片 【WPF】利用Ellipse或Rectangle制作圆形进度条_第4张图片

RenderTransform :变形特效,用于拉伸、旋转、扭曲一个对象

【WPF】利用Ellipse或Rectangle制作圆形进度条_第5张图片

 【WPF】利用Ellipse或Rectangle制作圆形进度条_第6张图片

成员包括:

1. TranslateTransform:平移。 X、Y 属性设置平移距离


    

2. RotateTransform: 旋转。  Angle设置旋转角度,CenterX、Y设置旋转中心的坐标

3. ScaleTransform : 缩放。  ScaleX、Y  设置 X 轴、Y轴缩放比例

4. SkewTransform : 二维倾斜 

5. TransformGroup: 组合变化效果 


   
   

MatrixTransform :通过矩阵算法实现更为复杂的变形

你可能感兴趣的:(WPF,wpf,c#)