Global MediaElement, который продолжает играть после перехода на другую страницу

Я использую MediaElement для воспроизведения музыки в своем приложении метро. Я хочу, чтобы музыка продолжала играть, даже если я перейду на другую страницу.

В следующей теме также задавался этот вопрос: http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/241ba3b4-3e2a-4f9b-a704-87c7b1be7988/

Я сделал то, что предложил JimMan 1) В App.xaml.cs изменен шаблон элемента управления корневого фрейма, чтобы включить 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) В Styles.xaml добавить

<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) Для доступа к MediaElement на странице, к которой осуществляется переход:

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

Но VisualTreeHelper.GetChild (Window.Current.Content, 0); всегда возвращает ноль, даже если я пытаюсь получить доступ к MediaElemt на корневой странице.

Я построил небольшой пример проекта для демонстрации.

Пример проекта

Есть идеи ? Заранее спасибо !

С наилучшими пожеланиями Fabian

Ответы на вопрос(1)

Ваш ответ на вопрос