windows-runtime – 导航到其他页面后继续播放的Global MediaEle
发布时间:2020-12-14 05:36:25 所属栏目:Windows 来源:网络整理
导读:我正在使用MediaElement在我的地铁应用程序中播放音乐. 即使我导航到另一个页面,我也希望音乐继续播放. 在下面的线程中,该问题也被提出: http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/241ba3b4-3e2a-4f9b-a704-87c7b1be7988/
我正在使用MediaElement在我的地铁应用程序中播放音乐.
即使我导航到另一个页面,我也希望音乐继续播放. 在下面的线程中,该问题也被提出: 我做了JimMan的建议 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);即使我尝试访问Root页面上的MediaElemt,也始终返回null. 我建立了一个示例Project以进行演示. Sample Project 有任何想法吗 ? 最好的祝福 解决方法
在可视化树完全加载(添加到可视树)之前,您可能尝试使用Navigated处理程序来尝试获取可视树子项.您可以尝试将代码移动到Loaded事件处理程序.
编辑* 我通过做出以下改变来证实我的理论: public sealed partial class MainPage : Page { public MainPage() { this.InitializeComponent(); this.Loaded += OnLoaded; } private void OnLoaded(object sender,RoutedEventArgs e) { DependencyObject rootGrid = VisualTreeHelper.GetChild(Window.Current.Content,0); MediaElement rootMediaElement = (MediaElement)VisualTreeHelper.GetChild(rootGrid,0); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 无法在Windows中的Docker内启动TensorFlow
- windows-server-2012-r2 – 系统更新后如何修复黑色窗口颜色
- windows – 获取“活动”远程桌面会话
- 如何在WPF中构建Metro应用程序
- windows-phone-7 – Windows Phone 7模拟框架?
- .net – Windows:列出并启动与扩展名关联的应用程序
- 如何使用无效的Windows文件名处理在Linux上提交给Git的文件
- windows – 两个具有相同用户名的可信域 – 我们可以合并吗
- 如何在Microsoft Azure上部署一个简单的静态微站点
- windows-server-2003 – 默认Windows共享的重要性