Global MediaElement que continúa jugando después de navegar a otra página

Estoy usando un MediaElement para reproducir música en mi aplicación de metro. Quiero que la música se siga reproduciendo aunque navegue a otra página.

En el siguiente hilo se hizo esa pregunta también:http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/241ba3b4-3e2a-4f9b-a704-87c7b1be7988/

Hice lo que JimMan sugirió 1) En App.xaml.cs Cambié la plantilla de control del marco raíz para incluir MediaElement

var rootFrame = new Frame();
rootFrame.Style = Resources["RootFrameStyle"] as Style;
rootFrame.Navigate(typeof(HomePage), MainViewModel.Instance);
Window.Current.Content = rootFrame;
Window.Current.Activate();

2) En Styles.xaml añadir

<Style  x:Key="RootFrameStyle" TargetType="Frame">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Frame">
                <Grid>
                    <MediaElement x:Name="MediaPlayer" AudioCategory="BackgroundCapableMedia" AutoPlay="True"  />
                    <ContentPresenter />
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>   
</Style>

3) Para acceder a MediaElement en la página navegada a:

DendencyObject rootGrid = VisualTreeHelper.GetChild(Window.Current.Content, 0);     
MediaElement rootMediaElement = (MediaElement)VisualTreeHelper.GetChild(rootGrid, 0);

Pero VisualTreeHelper.GetChild (Window.Current.Content, 0); siempre devuelve nulo, incluso si intento acceder a MediaElemt en la página raíz.

Construí un pequeño proyecto de ejemplo para demostrar.

Proyecto de muestra

Algunas ideas ? Gracias por adelantado !

Saludos cordiales Fabian

Respuestas a la pregunta(1)

Su respuesta a la pregunta