2010-11-25 4 views
3

J'aime ajouter un contrôle WebBrowser en tant qu'arrière-plan Canvas dans WPF en utilisant C#. Comment puis-je faire cela? J'ai le code suivant pour le moment. Mais ne fonctionne pas.WebBrowser comme toile de fond

<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> 
+0

Où est votre code? – Darbio

Répondre

0

Le contrôle WebBrowser n'est pas un contrôle WPF standard, autant que je sache. C'est fondamentalement une fenêtre incorporée avec un contrôle d'IE dedans. Je suis à peu près certain que vous ne pouvez pas l'utiliser de cette manière.

+0

Je peux me tromper, bien sûr;) –

0

Il s'agit d'une fenêtre IE intégrée, vous ne pouvez donc pas l'utiliser de cette façon.

Vous pouvez cependant utiliser une chrome de cette façon: http://chriscavanagh.wordpress.com/2009/08/25/a-real-wpf-webbrowser/

Vous pouvez également mapper à une surface, il animez etc.

+0

cette chose peut-elle aussi appeler des méthodes C# de javascript et des méthodes javascript de C#? – jiga

+0

Désolé, je n'ai pas essayé l'un ou l'autre. – SteveCav

1

Vous ne pouvez pas le faire. Le contrôle du navigateur Web est un wrapper ActiveX Internet Explorer avec les problèmes d'espace aérien qui en résultent. Cependant, vous pouvez dessiner dessus en utilisant le contrôle <Popup> ou si cela ne vous dérange pas de perdre l'interactivité, essayez de générer une image de la page Web et utilisez-la comme arrière-plan Canevas.

Si vous songez à utiliser l'WPF Chrome wrapper by Chris Cavanagh, gardez à l'esprit:

  • Il ne supporte pas encore COM-visible (donc pas de méthodes javascript window.external retour à votre code C#)
  • Il a une dépendance sur Awesomium qui est seulement gratuit pour une utilisation non commerciale.
  • Il ajoutera plus de 10 Mo à la taille de votre code tel qu'il doit intégrer Chrome
+0

Notez que la réponse ci-dessus est vraiment ancienne, et je pense qu'ils ont résolu cela dans WPF maintenant. –

Questions connexes