给出以下小片段:
<Grid>
<Frame Width="300" Height="300" Background="Blue"></Frame>
<Frame Width="350" Height="350" Background="Red"></Frame>
</Grid>
正如预期的那样,您无法看到蓝色框架(它位于红色框架后面)。
但是,如果将source属性包含在蓝框中:
<Grid>
<Frame Width="300" Height="300" Background="Blue" Source="c:\test.htm"></Frame>
<Frame Width="350" Height="350" Background="Red"></Frame>
</Grid>
它突然出现在前面。
知道为什么我可以阻止它吗?
感谢
答案 0 :(得分:3)
具有外部源的Frame元素实际上使用了经典的IE COM组件。由于它不是直接WPF,它不参与WPF布局,必须在WPF层的“顶部”才能看到,并且不能旋转或缩放。这与使用HwndHost
在WPF中托管win32内容时遇到的问题相同。 See this MSDN page了解更多信息。
没有真正的解决方法,但您可以尝试使用WPF Chromium使用Chromium的引擎直接将网页呈现为真正的WPF元素。
答案 1 :(得分:0)
我认为在第二个示例中会弹出蓝色,因为它在加载文件时已更新或完成了uielement的渲染。 也许这有效:
<Grid>
<Frame Width="300" Height="300" Background="Blue" Source="c:\test.htm" Panel.ZIndex="0"></Frame>
<Frame Width="350" Height="350" Background="Red" Panel.ZIndex="1"></Frame>
</Grid>