using System; using System.Windows; namespace Developpez.Dotnet.Windows { /// /// Fournit des méthodes d'extension pour les contrôles WPF (FrameworkElement) /// public static class FrameworkElementExtensions { /// /// Effectue une action quand l'élément est chargé /// /// Element pour lequel l'action doit être effectuée /// Action à effectuer public static void DoWhenLoaded(this FrameworkElement element, Action action) { if (element.IsLoaded) { action(); } else { RoutedEventHandler handler = null; handler = (sender, e) => { element.Loaded -= handler; action(); }; element.Loaded += handler; } } /// /// Effectue une action quand l'élément est chargé /// /// Type de l'élément /// Element pour lequel l'action doit être effectuée /// Action à effectuer public static void DoWhenLoaded(this T element, Action action) where T : FrameworkElement { if (element.IsLoaded) { action(element); } else { RoutedEventHandler handler = null; handler = (sender, e) => { element.Loaded -= handler; action(element); }; element.Loaded += handler; } } } }