internal static void AddDragEnterHandler(DependencyObject element, CustomDragEventHandler handler, bool handledEventsToo)
 {
     if (element == null)
     {
         throw new ArgumentNullException("element");
     }
     if (handler == null)
     {
         throw new ArgumentNullException("handler");
     }
     CustomExtendedRoutedEventHandlerCollection<CustomDragEventHandler, CustomDragEventArgs> dragEnterHandlers = element.GetDragEnterHandlers();
     CustomExtendedRoutedEventHandlerCollection<CustomDragEventHandler, CustomDragEventArgs> handlers2 = dragEnterHandlers ?? new CustomExtendedRoutedEventHandlerCollection<CustomDragEventHandler, CustomDragEventArgs>((h, a) => h(element, a));
     handlers2.Add(handler, handledEventsToo);
     if (handlers2 != dragEnterHandlers)
     {
         element.SetValue(DragEnterHandlerProperty, handlers2);
     }
 }
 internal static void AddDragLeaveHandler(DependencyObject element, CustomDragEventHandler handler)
 {
     AddDragLeaveHandler(element, handler, false);
 }
 internal static void RemoveDropHandler(DependencyObject element, CustomDragEventHandler handler)
 {
     if (element == null)
     {
         throw new ArgumentNullException("element");
     }
     if (handler == null)
     {
         throw new ArgumentNullException("handler");
     }
     CustomExtendedRoutedEventHandlerCollection<CustomDragEventHandler, CustomDragEventArgs> dropHandlers = element.GetDropHandlers();
     if (dropHandlers != null)
     {
         dropHandlers.Remove(handler);
     }
 }