2010-07-25 79 views
0

該場景是我有一個HTML項目的列表;當我點擊一個項目時,我使用JS動態創建HTML以加載傳遞給特定項目#(使用initParams)的Silverlight應用程序;我的Silverlight應用程序以一種很好的方式將其視覺化。我在同一頁面上執行此操作,而不是加載新的網頁,並且過渡很順利。將參數傳遞給運行silverlight應用程序

我知道silverlight可以在我的頁面上調用一個JS函數(與我需要的相反)。我認爲我的JS函數也可以在Silverlight中引發一個事件/調用一個方法,但不完全確定 - 有沒有人試過這個?雖然解決方法是每次重新創建Silverlight應用程序,但只需在現有的已加載SL應用程序中引發事件就可以解決我的問題。

關於 ewart。

回答

1

您可以從JavaScript中調用Silverlight應用程序中的方法。 看到這個blog post

你只需要創建一個在您的Silverlight應用程序的類本身註冊爲可調用從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 
    } 
} 

然後你可以從JS

document.getElementById("mySilverlightControl").content.SilverlightObject.DoThing(5); 
調用此
相關問題