0

场景是我有一个 HTML 项目列表;当我单击一个项目时,我使用 JS 动态创建 HTML 以加载传入特定项目 # 的 silverlight 应用程序(使用 initParams);我的 silverlight 应用程序以一种很好的方式可视化了这一点。我在同一页面上执行此操作,而不是加载新网页,并且过渡很顺利。

我知道可以让 silverlight 在我的页面上调用 JS 函数(与我需要的相反)。我认为我的 JS 函数也可以在 Silverlight 中引发事件/调用方法,但不完全确定如何 - 有人试过吗?虽然一种解决方法是每次都重新创建 silverlight 应用程序,但仅在现有的加载的 SL 应用程序中引发一个事件将是解决我的问题的完美解决方案。

问候尤特。

4

1 回答 1

1

您可以从 JavaScript 调用 Silverlight 应用程序中的方法。请参阅此博客文章

您只需要在您的 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);
于 2010-07-25T23:02:55.153 回答