Я использую MediaElement для воспроизведения музыки в своем приложении для метро. Я хочу, чтобы музыка продолжала играть, даже если я перейду к другой странице.Global 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 о п Page навигацию к:
DendencyObject rootGrid = VisualTreeHelper.GetChild(Window.Current.Content, 0);
MediaElement rootMediaElement = (MediaElement)VisualTreeHelper.GetChild(rootGrid, 0);
Но VisualTreeHelper.GetChild (Window.Current.Content, 0); всегда возвращает null, даже если я пытаюсь получить доступ к MediaElemt на странице Root.
Я построил небольшой пример проекта для демонстрации.
Любые идеи? Спасибо заранее!
С наилучшими пожеланиями Fabian
Нет результат IST то же, что для меня это выглядит как MediaElement не помещается должным образом в корневом фрейме. – elDietze
Это действительно сработало для меня. (заметьте, я использую Release Preview, хотя это не имеет значения) –
Большое спасибо! Теперь он работает. Ваше следующее пиво (даже если только виртуальное) на мне! ! [Пиво] (http://images.derberater.de/files/imagecache/456xXXX_berater/berater/slides/Bier-erfunden.jpg). Приветствую Fabian – elDietze