2010-01-10 4 views
1

Donc, voici mon problème, im fonctionnant dans une application Wpf, donc je n'ai pas tous les contrôles de formulaire Windows standard .. donc im essayant d'utiliser un windowsformshost, pour contenir un webbrowser à l'intérieur d'un tabitem. Voici donc ce que j'ai:Ajout de contrôles aux TabItems dynamiquement à l'exécution en C#

 Tab t = new Tab(); 
     Browser newbrowse = new Browser(t); 
     WindowsFormsHost host = new WindowsFormsHost(); 
     Grid g = new Grid(); 

     host.Child = newbrowse; 
     newbrowse.Dock = DockStyle.Fill; 
     g.Children.Add(host); 

     t.Header = "New Tab"; 
     t.Content = g; 
     tabControl1.Items.Add(t); 

maintenant, Tab, et le navigateur, ne sont que mes implémentations personnalisées des contrôles, et ils ont tous deux sont testés et travailler. Donc ce n'est pas le problème. Maintenant, autant que je peux voir, ce code devrait fonctionner. Mais je reste à regarder une page d'onglet vierge. Notez que cela doit être dans le codebehind et ne peut pas être inclus dans le WPF lui-même.

Merci pour toute contribution! :) Vive

EDIT: Notez que j'ai aussi essayé l'opération avec la norme, controls.tabitem et forms.webbrowser au même effet

+0

Vous savez qu'il existe un contrôle WPF WebBrowser? Il a été ajouté dans 3.5 SP1. Il s'appuie sur le même contrôle ActiveX que celui de WinForms, mais vous évite d'avoir à fouiller avec WindowsFormsHost. – itowlson

+0

Je ne dois pas avoir le SP, si je ne reçois pas une réponse dans un délai raisonnable, je peux envisager de mettre à jour. Mais si je peux trouver une méthode appropriée de cette façon, je voudrais rester avec ma configuration actuelle – codeThis

Répondre

2

Je viens d'essayer cela, et apparemment ce qui brise votre plan est le line:

newbrowse.Dock = DockStyle.Fill; 

Comment, et regardez comment cela fonctionne soudainement!

Questions connexes