C# WPF 基础等待动画Loading...动态转圈 Storyboard ContentControl

这个效果图...直接放上吧,实际是转圈效果,使用起来最方便的一种。

【这是个基础版,灵活度很高】

  • Xaml

绘制Loading图案,及触发的动画效果,实际控制的每个组件 Opacity - 透明度 属性。

如果是想直接用 Storyboard 动态效果,那就:(示例只是随便找的Code,不是Loading了哈~)

// i:Interaction.Triggers  --  i:EventTrigger  --  i:InvokeCommandAction  -- 无关的插曲

//比如 DockPanel 的样式里,想在 Event 加入动态效果

    
    
		
			
				
			
		
	
	
		
			
				
			
		
	




	
		
	
  • LoadingControl.cs  可省略

提供使用处的 X Y 属性(外观效果),用的时候调整就看得出来啦

using System;
using System.Windows;
using System.Windows.Controls;

namespace MyTest.Control
{
    public class LoadingControl : ContentControl
    {
        /// 
        /// Y轴半径
        /// 
        public static readonly DependencyProperty RadiusYPropertyProperty;

        /// 
        /// X轴半径
        /// 
        public static readonly DependencyProperty RadiusXPropertyProperty;

        /// 
        /// 静态构造方法
        /// 
        static LoadingControl()
        {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(LoadingControl), new FrameworkPropertyMetadata(typeof(LoadingControl)));
            RadiusYPropertyProperty = DependencyProperty.Register("RadiusY", typeof(string), typeof(LoadingControl), new PropertyMetadata("0"));
            RadiusXPropertyProperty = DependencyProperty.Register("RadiusX", typeof(string), typeof(LoadingControl), new PropertyMetadata("0"));
        }

        /// 
        /// 构造方法
        /// 
        public LoadingControl()
        {

        }

        /// 
        /// X轴半径
        /// 
        public string RadiusX
        {
            get { return (string)GetValue(RadiusXPropertyProperty); }
            set { SetValue(RadiusXPropertyProperty, value); }
        }

        /// 
        /// Y轴半径
        /// 
        public string RadiusY
        {
            get { return (string)GetValue(RadiusYPropertyProperty); }
            set { SetValue(RadiusYPropertyProperty, value); }
        }
    }
}
  • xaml 使用

其实就引用这个控件,然后调整属性就OK 了。

由于动画效果,示例里是加载的时候就一直转动,所以控制 Visibility 属性就可以了。

也可以自定义其他属性 或 事件,触发转动、停止效果。

 

【这是个基础版,灵活度很高】   可以改样式、触发时机......

你可能感兴趣的:(WPF,c#,开发语言,WPF,wpf)