WebBrowser作为画布背景

时间:2010-11-25 01:13:13

标签: c# wpf xaml

我喜欢使用C#在WebF中添加一个WebBrowser控件作为Canvas背景。我该怎么做呢?我现在有以下代码。但是不起作用。

<Canvas
  Name="canvas"
  Grid.ColumnSpan="4"
  Grid.Row="1"
  MouseDown="Canvas_MouseDown"
  MouseMove="Canvas_MouseMove"
  MouseUp="Canvas_MouseUp"
  Margin="0,0,0,16"
  Grid.RowSpan="3">
  <Canvas.Background>
    <VisualBrush>
      <VisualBrush.Visual>
        <WebBrowser
          x:Name="wbMain"
          Height="246"
          Width="592" />
      </VisualBrush.Visual>
    </VisualBrush>
  </Canvas.Background>
</Canvas>

3 个答案:

答案 0 :(得分:1)

你不能这样做。 Web浏览器控件是一个Internet Explorer ActiveX包装器,会导致空域问题。

但是,您可以使用<Popup>控件在其上绘图,或者如果您不介意丢失交互性,请尝试生成网页图像并将其用作画布背景。

如果您正在考虑使用WPF Chrome wrapper by Chris Cavanagh,请记住:

  • 它还不支持COM-Visible(因此没有window.external javascript方法返回到您的C#代码)
  • 它依赖Awesomium,只能免费用于非商业用途。
  • 因为需要嵌入Chromium
  • ,它会为您的代码大小增加10MB以上

答案 1 :(得分:0)

据我所知,WebBrowser控件不是标准的WPF控件。它基本上是一个带有IE控件的嵌入式窗口。我很确定你不能以这种方式使用它。

答案 2 :(得分:0)

这是一个嵌入式IE窗口,所以你不能那样使用它。

然而,您可以使用Chrome方式:http://chriscavanagh.wordpress.com/2009/08/25/a-real-wpf-webbrowser/

您还可以将其映射到曲面,为其设置动画等。