一、 在Silverlight注册一个Javascript脚本对象,并将C#方法暴露出来,就可以了。
注册脚本对象:
HtmlPage.RegisterScriptableObject("Builder",this);
定义脚本成员:
[ScriptableMember] public void CreateRect(int width,int height) { Rectangle rect = new Rectangle(); rect.width = width; rect.height = height; rect.Fill = new SolidColorBrush(Colors.Blue); LayoutRoot.Children.Claer(); LayoutRoot.Children.Add(rect); }
二、 在Html中定义一个Silverlight对象,通过javascript获取此对象,用此对象来调用CreateRect方法创建矩形。
创建Silverlight对象:
<Object id="XamlObject" data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="400" height="300"> <param name="source" value="ClientBin/Sample.xap"/> <param name="onerror" value="onSilverlightError"/> <param name="background" value="white"/> <param name="minRuntimeVersion" value="2.0.31005.0"/> <param name="autoUpgrade" value="true"/> </Object>
通过点击按钮,调用该对象的方法:
<!--html--> <input id="button1" type="button" value="生成矩形" onclick="createRectangle();"> <!--javascript--> function createRectange(){ var xamlObject = document.all('xamlObject'); xamlObject.content.Builder.CreateRect(100,200); }
毫无理由的 坚持、坚持、再坚持!