2014-03-05 81 views
0

WPF这个Grid应用:的MediaElement在web浏览器

<Grid Name="MiddleGrid" Grid.Row="1"> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="*"/> 
      </Grid.ColumnDefinitions> 

     <WebBrowser Name="Browser" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Column="0" /> 
     <MediaElement Name="Media" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Column="0" LoadedBehavior="Manual" UnloadedBehavior="Stop"/> 
    </Grid> 

,我想使MediaElement控制是在浏览器中。 任何帮助我应该怎么做?

+0

WebBrowser打开哪个页面?你可以把视频放在那里吗? –

+0

我想把视频放到Webbrowser上,我不介意打开哪个页面。 – MTA

+0

WebBrowser控件是Win32 com控件,并且违反了WPF ..一种解决方案是在mediapleyr播放过程中隐藏webbrowser –

回答

1

这是一个Web浏览器控件如何实现的问题,如果您尝试将WPF控件嵌入到WPF控件中,您也会看到同样的问题。事物不是本地WPF(WebBrowser由IE呈现引擎提供,带有WPF包装器)不参与WPF合成 - 它们是子窗口,而不是参与WPF呈现堆栈的WPF控件。儿童窗口的呈现方式是,WPF会计算出他们应该占用的区域,告诉他们关于这个区域的信息,并告诉他们关闭它们。 WPF不会尝试在其上绘制任何WPF控件,因为它们不能参与与下面子窗口内容的合成。

有一些关于WPF 4.5解决这个问题的信息(它被称为“空域”),但它看起来像微软因为某种原因从最终版本中出来(猜测它还没有准备好,因为它是一件非常复杂的事情如果你考虑WPF可以对渲染变换,布局变换,视觉刷等等所做的所有事情的话。