2010-07-25 7 views
0

Le scénario est que j'ai une liste d'éléments en HTML; lorsque je clique sur un élément, j'utilise JS pour créer de manière dynamique le code HTML pour charger une application Silverlight passant dans l'élément spécifique # (en utilisant initParams); et mon application Silverlight visualise cela d'une manière agréable. Je fais cela sur la même page plutôt que de charger une nouvelle page Web, et la transition est fluide.paramètres de passage à l'exécution l'application silverlight

Je sais qu'il est possible d'avoir appel silverlight une fonction JS sur ma page (en face de ce que je dois). Je pense qu'il est également possible pour ma fonction JS de déclencher un événement/appeler une méthode en Silverlight, mais je ne sais pas exactement comment - est-ce que quelqu'un a essayé cela? Alors qu'une solution de contournement serait de recréer l'application Silverlight à chaque fois, le simple fait de déclencher un événement dans une application SL existante et chargée serait la solution parfaite à mon problème.

ce qui concerne Ewart.

Répondre

1

Vous pouvez appeler une méthode dans votre application Silverlight de JavaScript. Voir cette blog post

Vous avez juste besoin de créer une classe dans votre application silverlight qui s'enregistre comme appelable de JS:

[ScriptableType] 
public partial class SomeClass 
{ 
    private bool mouseHeldDown = false; 
    private Point moveMeOffset = new Point(); 

    public SomeClass() 
    { 
     HtmlPage.RegisterScriptableObject("SilverlightObject", this); 
    } 


    [ScriptableMember] 
    public void DoThing(int x) 
    { 
     //do some stuff 
    } 
} 

Ensuite, vous pouvez appeler cela de JS

document.getElementById("mySilverlightControl").content.SilverlightObject.DoThing(5); 
Questions connexes