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;
}
}
}
}