Is it possible to create a weak event listener on a static event using WeakEventManager?

I would like to create a weak event listener on the static CompositionTarget.Rendering event to avoid memory leaks when I don't know the lifetime of the WPF/Silverlight source element.

I implemented the rendering event manager by the weak event pattern:

public class RenderingEventManager : WeakEventManager
{
    public static void AddListener(IWeakEventListener listener)
    {
        CurrentManager.ProtectedAddListener(null, listener);
    }

    public static void RemoveListener(IWeakEventListener listener)
    {
        CurrentManager.ProtectedRemoveListener(null, listener);
    }

    private static RenderingEventManager CurrentManager
    {
        get
        {
            var managerType = typeof(RenderingEventManager);
            var manager = (RenderingEventManager)GetCurrentManager(managerType);
            if (manager == null)
            {
                manager = new RenderingEventManager();
                SetCurrentManager(managerType, manager);
            }
            return manager;
        }
    }

    protected sealed override void StartListening(object source)
    {
        CompositionTarget.Rendering += this.OnCompositionTargetRendering;
    }

    protected sealed override void StopListening(object source)
    {
        CompositionTarget.Rendering -= this.OnCompositionTargetRendering;
    }

    void OnCompositionTargetRendering(object sender, EventArgs e)
    {
        this.DeliverEvent(sender, e);
    }
}

and tested the manager in a simple window:

public partial class Window1 : Window, IWeakEventListener
{
    public Window1()
    {
        InitializeComponent();
        RenderingEventManager.AddListener(this);
    }

    bool IWeakEventListener.ReceiveWeakEvent(Type managerType, object sender, EventArgs e)
    {
   
Edit
Report