Verblassen jegliche Kontrolle über eine WPF-animation

Ich soll Sie zum ändern der Deckkraft der ein Steuerelement (Button, Textfeld, Panel, etc) in meinem WPF-Projekt und wollte überprüfen, um zu sehen, ob ich es getan hatte, richtig.

Meine Frage ist: Ist dies die Art von Funktionalität, die Sie würde in der Regel schreiben Sie in der XAML-oder würden Sie ähnlichen code wie unten zu erreichen, die fade-in/fade-out führen?

internal static class AnimationExtensions
{
    internal enum TransitionSpeed
    {
        Instant = 0,
        Fast = 100,
        Normal = 200,
        Slow = 500
    }

    ///<summary>
    ///Toggles the opacity of a control.
    ///</summary>
    ///<param name="control">The control.</param>
    internal static void ToggleControlFade(this Control control)
    {
        control.ToggleControlFade(TransitionSpeed.Normal);
    }

    ///<summary>
    ///Toggles the opacity of a control.
    ///</summary>
    ///<param name="control">The control.</param>
    ///<param name="speed">The speed.</param>
    internal static void ToggleControlFade(this Control control, TransitionSpeed speed)
    {
        Storyboard storyboard = new Storyboard();
        TimeSpan duration = new TimeSpan(0, 0, 0, 0, (int)speed); //

        DoubleAnimation animation = new DoubleAnimation { From = 1.0, To = 0.0, Duration = new Duration(duration) };
        if (control.Opacity == 0.0)
        {
            animation = new DoubleAnimation { From = 0.0, To = 1.0, Duration = new Duration(duration) };
        }

        Storyboard.SetTargetName(animation, control.Name);
        Storyboard.SetTargetProperty(animation, new PropertyPath("Opacity", 0));
        storyboard.Children.Add(animation);

        storyboard.Begin(control);
    }
}

Wie Sie wahrscheinlich sagen, ich bin sehr, sehr neu in WPF.

Dank

InformationsquelleAutor Kane | 2010-02-10
Schreibe einen Kommentar