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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Neige ich dazu, Sie zu finden an Orten, wo ich brauche, um eine Aktion auszuführen, nachdem eine animation oder wo die animation ist abhängig von komplexen Triggern, dass der code-behind ist der beste Ort, sonst wird die XAML ist ein guter Ort, um die animation. (Ich in der Regel tun dies für Dinge wie übergänge oder einfach 'onclick' Art von Veranstaltungen.