学习SilverLight:(1)SilverLight3.0和JavaScript交互

正在学习SilverLight,记录学习过程
SilverLigth如何和Javascript交互:下面是例子,参看孟子的例子,源地址: http://blog.csdn.net/net_lover/archive/2008/04/10/2272115.aspx
添加新SilverLight页面:Page.xaml,添加
ContractedBlock.gif ExpandedBlockStart.gif Code
<Canvas Canvas.Top="20">
            
<TextBlock Canvas.Top="10" Canvas.Left="20">请输入您的姓名:</TextBlock>
            
<TextBox x:Name="UserInput" Width="200" Height="30" Canvas.Top="40" Canvas.Left="20"></TextBox>
            
            
<TextBlock x:Name="Msg" Canvas.Top="90" Canvas.Left="20" Foreground="Navy" FontSize="36"></TextBlock>
            
<Button Click="Button_Click" Content="单击我" FontSize="24" Width="160" Height="60" x:Name="BtnTest" Canvas.Top="160" Canvas.Left="20"></Button>
        
</Canvas
在page.xaml.cs里面添加事件,以及使用 ScriptableTypeAttribute 同时标记所有成员。在您使用 RegisterScriptableObject 方法时,无需使用 ScriptableMemberAttribute 将单独的方法标记为可脚本化,并注册脚本,以便在客户端Javascript调用。
ContractedBlock.gif ExpandedBlockStart.gif Code
public Page()
        {
            InitializeComponent();
            
//此处注册
            HtmlPage.RegisterScriptableObject("aa"this);
        }
private void Button_Click(object sender, RoutedEventArgs e)
        {
            
string UserInputContent = this.UserInput.Text;
            
if (UserInputContent.Equals(String.Empty))
            {
                UserInputContent 
= "Hello Silverlight World!";
            }
            
else
            {
                UserInputContent 
= "你好," + UserInputContent;
            }
            HtmlWindow win 
= HtmlPage.Window;
            
this.Msg.Text = UserInputContent;
            win.Alert(
"Silverlight 里面弹出的对话框。 " + UserInputContent);
            
//执行页面中的js函数:
            win.Eval("getArrayTest()");
            Object[] args 
= { "将此参数传递给 js 函数" };
            win.Invoke(
"getArrayTest", args);
            
//如果页面中的值
            HtmlDocument doc = HtmlPage.Document;
            doc.GetElementById(
"UserName").SetAttribute("value"this.UserInput.Text);
        }

        [ScriptableMember()]
        
public string InterInvole()
        {
            
string username = HtmlPage.Document.GetElementById("UserName").GetAttribute("value");
            
this.UserInput.Text = username;
            
this.Msg.Text = "您输入了:" + username;
            
return "你从js脚本中调用了 Silverlight 里面的方法。";
在SiverlightTest.aspx中添加代码:
ContractedBlock.gif ExpandedBlockStart.gif Code
     <script type="text/javascript">
          
//定义全局函数:
         function getArrayTest() {
             
if (arguments.length > 0) {
                 alert(
"js 对话框:您传递了参数。" + arguments[0]);
                 
return arguments[0];
             }
             
else {
                 alert(
"js 对话框:无参数调用。");
                 
return "js 函数返回值";
             }
         }

         function SetUserName() {
            
if(SilverlightPlugin ==null)
            {
                alert(
"null");
            }
            
else
//如果使用ajax等控件,调用应该改为:
document.getElementByID("db").get_element().Content.aa.InterInvole();
                document.getElementById(
"db").Content.aa.InterInvole();
         }       
 
</script>

//在HTML中插入下面代码
<div id="silverlightControlHost">
      
<div style="border: 2px solid #EEE; margin: 20px;padding:20px">
  请输入你的名字:
<input id="UserName" type="text" value="" />
  
<input type="button" onclick="SetUserName()" value="将名字传递到 Silverlight" />
 
</div>
          
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%" name="db">
              
<param name="source" value="ClientBin/Silverlight.xap"/>
              
<param name="onload" value="onLoad" />
                            
              
<param name="onerror" value="onSilverlightError" />
              
<param name="background" value="white" />
              
<param name="minRuntimeVersion" value="3.0.40624.0" />
              
<param name="autoUpgrade" value="true" />
              
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40624.0" style="text-decoration: none;">
                   
<img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="获取 Microsoft Silverlight" style="border-style: none"/>
              
</a>
          
</object><iframe id="_sl_historyFrame" style='visibility:hidden;height:0;width:0;border:0px'></iframe></div
此时,点击SilverLight里面的Button,可以将值传递到SiverlightTest.aspx页面的Input里面,而点击SiverlightTest.aspx里面的button,会将Input里面的值传递到Sliverlight里面,实现两者交互。
举一反三,要实现其他复杂的功能,也变得不难了

转载于:https://www.cnblogs.com/wasp520/archive/2009/09/26/1574703.html

利用 TensorFlow 训练自己的目标识别器。本文内容来自于我的毕业设计,基于 TensorFlow 1.15.0,其他 TensorFlow 版本运行可能存在问题。.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值