WebBrowser上的MediaElement

时间:2014-03-05 11:35:15

标签: c# .net wpf

我有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控制在浏览器上。 任何帮助我应该如何做到这一点?

1 个答案:

答案 0 :(得分:2)

这是如何实现Web浏览器控件的问题,如果您尝试在WPF控件中嵌入Windows窗体控件,您也会看到同样的事情。非本机WPF(WebBrowser由IE渲染引擎提供,带有WPF包装器)不参与WPF合成 - 它们是子窗口,而不是参与WPF渲染堆栈的WPF控件。渲染子窗口的方式是WPF计算出他们应该占据的区域,告诉他们关于它的信息,然后关闭它们。 WPF没有尝试做的是在它上面绘制任何WPF控件,因为它们不能参与与下面子窗口内容的合成。

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