javascript调用silverlight中的托管代码...
时间:2010-08-17 来源:lyjzxy
以MainPage.xaml.cs为例
1.在MainPage.xaml.cs文件中定义允许被JS脚本访问的方法,并加以ScriptableMember特性,如:
[ScriptableMember]
pubilc void Add()
{
int z=1+1;
this.result.Text=string.Format("1+1={0}",z); //result为Silverlight中TextBlock控件的Name属性
}
2.在MainPage.xaml.cs文件的构造方法中注册可被JS调用的类,如:
HtmlPage.RegisterScriptableObject("MainPage",this);
3.在Silverlight测试页(即aspx页)中,编写JS脚本,如:
<script type="text/javascript">
function callSilverlight()
{
var host=document.getElementById("slTest");
host.Content.MainPage.Add();
}
</script>
4.在测试页中,找到包含Silverlight的Object对象,并增加其id属性,值为slTest。
5.在测试页中添加一个测试控件,如:
<input type="button" value="确定" onclick="callSilverlight()"/>
OK,现在生成解决方案,点击确定按钮,就可以看到Silverlight中的TextBlock控件的值已经发生了改变。