代码之家  ›  专栏  ›  技术社区  ›  PaulB

源属性始终位于顶部的WPF帧控件?

wpf
  •  2
  • PaulB  · 技术社区  · 15 年前

    给出以下小片段:

    <Grid>
      <Frame Width="300" Height="300" Background="Blue"></Frame>
      <Frame Width="350" Height="350" Background="Red"></Frame>
    </Grid>
    

    正如预期的那样,你看不到蓝色的框架(它在红色框架的后面)。

    但是,如果将源属性包含到蓝色框架中:

    <Grid>
      <Frame Width="300" Height="300" Background="Blue" Source="c:\test.htm"></Frame>
      <Frame Width="350" Height="350" Background="Red"></Frame>
    </Grid>
    

    它突然出现在前面。

    知道为什么,我能阻止它吗?

    谢谢

    2 回复  |  直到 15 年前
        1
  •  3
  •   Julien Lebosquain    15 年前

    带有外部源的框架元素实际上使用经典的IE COM组件。因为它不是直接的WPF,所以它不参与WPF布局,必须位于要查看的WPF层的“顶部”,并且不能旋转或缩放。这与使用 HwndHost 在WPF中承载win32内容。 See this MSDN page 更多信息。

    没有真正的解决方法,但您可以尝试使用 WPF Chromium 它使用Chromium的引擎直接将网页渲染为真正的WPF元素。

        2
  •  0
  •   martin    15 年前

    我认为蓝色会在第二个示例中弹出,因为它是在加载文件时更新的或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>