public static bool ExecuteOnLoad(FrameworkElement element, RoutedEventHandler handler) {
#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
handler(element, new RoutedEventArgs());
return true;
}
RoutedEventHandler loaded = null;
loaded = (s, e) => {
element.Loaded -= loaded;
#if SILVERLIGHT
element.SetValue(IsLoadedProperty, true);
#endif
handler(s, e);
};
element.Loaded += loaded;
return false;
#endif
}