我有WPF
申请Grid
:
<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 :(得分:2)
这是如何实现Web浏览器控件的问题,如果您尝试在WPF控件中嵌入Windows窗体控件,您也会看到同样的事情。非本机WPF(WebBrowser
由IE渲染引擎提供,带有WPF包装器)不参与WPF合成 - 它们是子窗口,而不是参与WPF渲染堆栈的WPF控件。渲染子窗口的方式是WPF计算出他们应该占据的区域,告诉他们关于它的信息,然后关闭它们。 WPF没有尝试做的是在它上面绘制任何WPF控件,因为它们不能参与与下面子窗口内容的合成。
有一些关于WPF 4.5解决这个问题的信息(它被称为“空域”),但看起来微软出于某种原因从最终版本中取出了它(猜测它没有准备好,因为这是一个非常复杂的事情如果你考虑WPF可以用渲染变换,布局变换,可视化画笔等所做的所有事情,那就做。)