public static bool ExecuteOnLoad(FrameworkElement element, RoutedEventHandler handler) { #endif #if XFORMS handler(element, new RoutedEventArgs()); return(true); #else #if SILVERLIGHT if ((bool)element.GetValue(IsLoadedProperty)) { #elif WinRT if (IsElementLoaded(element)) { #else if (element.IsLoaded) { #endif #if NOESIS handler(element, new RoutedEventArgs(element, new RoutedEvent("Loaded"))); #else handler(element, new RoutedEventArgs()); #endif return(true); } FrameworkElement.LoadedHandler loaded = null; loaded = (s, e) => { element.Loaded -= loaded; #if SILVERLIGHT element.SetValue(IsLoadedProperty, true); #endif handler(s, e); }; element.Loaded += loaded; return(false); #endif }
/// <summary> /// Executes the handler immediately if the element is loaded, otherwise wires it to the Loaded event. /// </summary> /// <param name="element">The element.</param> /// <param name="handler">The handler.</param> /// <returns>true if the handler was executed immediately; false otherwise</returns> #if NOESIS public static bool ExecuteOnLoad(FrameworkElement element, FrameworkElement.LoadedHandler handler) {