private static void ShouldTrackFillChangeChanged(DependencyObject target, DependencyPropertyChangedEventArgs args)
        {
            Ellipse ellipse = (Ellipse)target;

            DependencyPropertyWatcher <Brush> watcher = GetEllipseFillWatcher(ellipse);

            if (watcher != null)
            {
                watcher.Dispose();
            }

            if ((bool)args.NewValue)
            {
                watcher = new DependencyPropertyWatcher <Brush>(ellipse, "Fill", Ellipse_FillChanged);
                SetEllipseFillWatcher(ellipse, watcher);
            }
        }
 private static void SetEllipseFillWatcher(DependencyObject obj, DependencyPropertyWatcher <Brush> value)
 {
     obj.SetValue(EllipseFillWatcherProperty, value);
 }