Silverlight 全屏打开MediaElement

Silverlight 全屏打开MediaElement,silverlight,silverlight-4.0,streaming,fullscreen,mediaelement,Silverlight,Silverlight 4.0,Streaming,Fullscreen,Mediaelement,在我的silverLight4应用程序中有一个MediaElement可以播放视频。 表单中还有其他控件(列表框、按钮等)。 当观看视频时,我想选择切换到全屏,但只有视频而不是所有的表单(比如youtube),有没有办法只将“MediaElement”控件切换到全屏?使你的MediaElement成为应用程序的RootVisual。因为一旦分配了RootVisual,就无法更改它,所以需要这样做 private MainPage _mainPage = new MainPage(); priva

在我的silverLight4应用程序中有一个MediaElement可以播放视频。 表单中还有其他控件(列表框、按钮等)。
当观看视频时,我想选择切换到全屏,但只有视频而不是所有的表单(比如youtube),有没有办法只将“MediaElement”控件切换到全屏?

使你的
MediaElement
成为应用程序的
RootVisual
。因为一旦分配了RootVisual,就无法更改它,所以需要这样做

private MainPage _mainPage = new MainPage();
private MediaElement _media = new MediaElement(); 

private void Application_Startup(object sender, StartupEventArgs e)
{
    Grid grid = new Grid();
    grid.Children.Add(_mainPage);
    this.RootVisual = grid;
}

public void FullscreenVideo()
{
    (this.RootVisual as Grid).Children.Clear();
    (this.RootVisual as Grid).Children.Add(_media);
    Application.Current.Host.Content.IsFullScreen = true;
}

如果您调用FullscreenVideo,它应该将您的
MediaElement
加载到全屏窗口中

谢谢,但不太清楚,从哪里调用FullscreenVideo()?我似乎无法从其他页面看到它。当您现在将应用程序切换到全屏时,只需将其更改为调用
(Application.Current as app).FullscreenVideo()谢谢,但是当我点击全屏按钮(元素已经是另一个元素的子元素)时,我收到了这个错误。有什么想法吗?在将MediaElement添加到
应用程序.RootVisual
之前,您需要将其从当前容器中删除。老实说,我不确定最好的管理方法是什么。您可能想做一些事情,比如将_media对象传递到您的主页面,然后将
media元素
添加到代码中的主页面。然后,在调用
FullscreenVideo()
之前,您需要将其从添加到的容器中删除,然后在退出fullscreen后将其重新添加。