韩小红体检卡:Silverlight与Html Dom的交互(二)

来源:百度文库 编辑:九乡新闻网 时间:2024/04/26 20:36:35

Silverlight与Html Dom的交互(二)--javascript调用silverlight

  这个例子在网上很容易查到,也很实用。这里我也引用一下。省事了

Silverlight 2 在Silverlight中如何用JavaScript调用.NET代码

使用RegisterScriptableObject

在Silverlight 2中提供了如下两个类型:ScriptableMemberAttribute:允许我们在Silverlight把成员暴露给Script。ScriptableTypeAttribute:允许我们在Silverlight把类型暴露给Script。同时HtmlPage提供了RegisterCreateableType和RegisterScriptableObject方法,用来注册可被脚本使用的类型或者对象实例。有了上面这些,就可以做到在JavaScript中调用Silverlight。看一个简单的示例,在这个示例中,我们期望通过JavaScript传递两个参数给Silverlight中的方法,由该方法计算出结果后显示在Silverlight中。

首先我们编写在Silverlight中的界面布局:





Margin="20 5 0 0">

并在加载时注册一个脚本可调用的当前页面实例:
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
HtmlPage.RegisterScriptableObject("Calculator", this);
}
编写一个Add方法,该方法将在JavaScript中被调用,必须为public,用ScriptableMember特性暴露给脚本。
[ScriptableMember]
public void Add(int x, int y)
{
int z = x + y;
this.result.Text = String.Format("{0} + {1} = {2}", x, y, z);
}
现在编写测试页中的内容,提供输入的input控件:




编写JavaScript调用Silverlight中的方法,获取Silverlight插件,Calculator就是我们刚才所注册的实例:
在按钮单击事件中调用该方法