2011-07-08 3 views
0

Je travaille sur une application qui est pour la plupart html/javascript (tout le truc "HTML5") avec un shell léger d'une application WPF pour qu'elle puisse interagir avec les ressources locales.WPF Webbrowser C# JavaScript interop

L'application possède un seul fichier HTML que je navigue par programme. Une fois le fichier chargé, j'essaie d'attacher des gestionnaires d'événements pour pouvoir gérer des événements spécifiques en C#.

Lorsque j'essaie d'utiliser les objets mshtml, il semble que je ne reçois que des valeurs nulles. Par exemple, voici un code:

string initUrl = "file:///" + Path.Combine(Environment.CurrentDirectory, Path.Combine("Pages", "ComposeSurface.html")); 
navBrowser.Navigate(new Uri(initUrl)); 

navBrowser.Navigated += (o, e2) => 
{ 
    HTMLDocumentClass documentObject = navBrowser.Document as HTMLDocumentClass; 
    IHTMLElement ele = documentObject.getElementById("initButton"); 
    if (ele != null) 
    { 
     Func<IHTMLEventObj, bool> evra = (arg) => { MessageBox.Show("Hello"); return true; }; 
     ele.onclick = evra as object; 
    } 
}; 

getElementById semble toujours retourner une valeur nulle, cependant. J'ai vérifié et l'identifiant de l'élément est cohérent.

Ma deuxième question a trait à la gestion de l'événement - cela fonctionnera-t-il pour un événement click à partir d'un bouton de formulaire HTML normal jusqu'à la connexion d'un C#?

Répondre