UserControl 加载动画
阅读原文时间:2023年07月08日阅读:1

效果:实现加载UserControl动画效果

public class BaseModuleView : UserControl
{
private TranslateTransform CurTranslate;
private DoubleAnimation XAnim;
private DoubleAnimation OpacityAnim;
private double OriginX = 50;

    public BaseModuleView()  
    {  
        DoInitAnin();  
        this.Loaded += BaseModuleView\_loaded;  
        this.Unloaded += BaseModuleView\_Unloaded;  
    }

    private void BaseModuleView\_Unloaded(object sender, System.Windows.RoutedEventArgs e)  
    {  
        DoUnloadAnim();  
    }  
    private void BaseModuleView\_loaded(object sender, System.Windows.RoutedEventArgs e)  
    {  
        DoLoadAnim();  
    }  
    private void DoLoadAnim()  
    {  
        this.CurTranslate.BeginAnimation(TranslateTransform.XProperty, XAnim);  
        this.BeginAnimation(UIElement.OpacityProperty, OpacityAnim);  
    }

    private void DoUnloadAnim()  
    {  
        this.CurTranslate.BeginAnimation(TranslateTransform.XProperty, null);  
        this.BeginAnimation(UIElement.OpacityProperty, null);

        this.CurTranslate.X = this.OriginX;  
        this.Opacity = 0;  
    }  
    private void DoInitAnin()  
    {  
        CurTranslate = new TranslateTransform();  
        CurTranslate.X = OriginX;  
        RenderTransform = CurTranslate;  
        Opacity = 0;  
        XAnim = new DoubleAnimation(0, TimeSpan.FromSeconds(0.3));  
        XAnim.EasingFunction = new ExponentialEase() { EasingMode = EasingMode.EaseInOut };  
        OpacityAnim = new DoubleAnimation(1, TimeSpan.FromSeconds(0.2));

    }  
}

XAML代码:


</Grid>