Sil“.NET研究”verlight与HTML双向交互

简介:   Silverlight具备很好的用户体验,但有时需要在页面的布局上进行特殊处理,比如作为webpart集成到Sharepoint中等等。  HTML和Silverlight之间的双向交互可以更灵活的使用Silverlight进行开发,上午摸索了一下,记录在此。

  Silverlight具备很好的用户体验,但有时需要在页面的布局上进行特殊处理,比如作为webpart集成到Sharepoint中等等。

  HTML和Silverlight之间的双向交互可以更灵活的使用Silverlight进行开发,上午摸索了一下,记录在此。

  一,向Silverlight传递数据,实现个性化加载

  Silverlight在HTML中的引用是:

< object data = " data:application/x-silverlight-2, " type = " application/x-silverlight-2 " width = " 100% " height = " 100% " >
          
< param name = " source " value = " ClientBin/VideoCenter.xap " />
          
< param name = " onError " value = " onSilverlightError " />
          
< param name = " background " value = " white " />
          
< param name = " minRuntimeVersion " value = " 4.0.50401.0 " />
          
< param name = " autoUpgrade " value = " true " />
                    
< a href = " http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0 " style = " text-decoration:none " >
              
< img src = " http://go.microsoft.com/fwlink/?LinkId=161376 " alt = " Get Microsoft Silverlight " style = " border-style:none " />
          
</ a >
</ object >

  这种引用插件的方式提供了一系列的参数来实现个性加载,上面的代码中我们加了一行参数

< param name = " initParams " value = " CategoryId=1 上海闵行企业网站设计与制作="color: #800000;">" />

  我们可以在Silverlight中处理这些参数,打开Silverlight应用程序的App代码文件,加上接收参数的代码

private void Application_Startup( object sender, StartupEventArgs e)
        {
            
if (e.InitParams.Count ! = 0 )
            {
                foreach(var item in e.InitParams)
                {
                    this.Resources.Add(item.Key, item.Value);
                }
    上海网站建设        }
        &n上海徐汇企业网站制作bsp;   this.RootVisual
= new MainPage();
        }

  我们看到对e.InitParams的处理,即可得到了HTML中传进来的参数,实现个性化加载:

if (App.Current.Resources[ " CategoryId " ]! = null )
            {
                
int cateId = int .Parse(App.Current.Resources[ " CategoryId " ].ToString());
                CategoryItem c
= new CategoryItem();
                c.CategoryID
= cateId;
                this.gridOfList.Children.Add(c);
            }

  二,Silverlight调用HTML中的脚本资源,实现自身的样式等修改

        首先我们可以在加载Silverlight组件的页面上编写一段Javascript脚本

function InvokePlayer(videoId) {
            document.getElementById(
" divCategory " ).style.display = " none " ;
         &nbsp上海企业网站设计与制作;  var player
= document.getElementById( " divPlayer " );
            player.style.width
= " 100% " ;
            player.style.height
= " 600px " ;
}

  怎么在Silverlight中调用这个脚本呢?我们可以在某个事件中调用Silverlight提供的类方法

System.Windows.Browser.HtmlPage.Window.Invoke( " InvokePlayer " , videoId);

  当然类似的方法还有几个:

(HtmlPage.Window.GetProperty( " InvokePlayer " ) as ScriptObject)InvokeSelf( " Good Function! " );HtmlPage.Window.Eval( " document.getElementById('result') " ) as HtmlElement…

  即可实现调用脚本。经过以上的两个方法即可实现HTML和Silverlight之间双向传递数据的功能。

目录
相关文章
|
7天前
|
机器学习/深度学习 JSON 测试技术
CNN依旧能战:nnU-Net团队新研究揭示医学图像分割的验证误区,设定先进的验证标准与基线模型
在3D医学图像分割领域,尽管出现了多种新架构和方法,但大多未能超越2018年nnU-Net基准。研究发现,许多新方法的优越性未经严格验证,揭示了验证方法的不严谨性。作者通过系统基准测试评估了CNN、Transformer和Mamba等方法,强调了配置和硬件资源的重要性,并更新了nnU-Net基线以适应不同条件。论文呼吁加强科学验证,以确保真实性能提升。通过nnU-Net的变体和新方法的比较,显示经典CNN方法在某些情况下仍优于理论上的先进方法。研究提供了新的标准化基线模型,以促进更严谨的性能评估。
27 0
|
30天前
|
XML 前端开发 安全
【专栏:HTML 进阶篇】HTML 表单验证与 AJAX 交互
【4月更文挑战第30天】本文探讨了HTML表单验证和AJAX在现代网页开发中的重要性。HTML表单验证通过必填、数据格式和范围验证确保用户输入的准确性,而AJAX则实现异步通信,提供动态数据加载、局部更新和实时交互。两者的结合优化了表单处理,提高用户体验并减少服务器负担。实际应用包括在线注册、购物车系统和表单反馈。然而,开发者需注意浏览器兼容性、错误处理和安全性问题。掌握这些技术,能打造更智能、高效的网页应用,为用户提供更好的体验。在数字化时代,HTML表单验证和AJAX是网页创新与进步的关键。
|
30天前
|
机器学习/深度学习 算法 数据可视化
MATLAB基于深度学习U-net神经网络模型的能谱CT的基物质分解技术研究
MATLAB基于深度学习U-net神经网络模型的能谱CT的基物质分解技术研究
|
30天前
|
JavaScript C#
C#winForm程序与html JS交互调用
C#winForm程序与html JS交互调用
|
30天前
|
UED
12.使用HTML制作交互图片
12.使用HTML制作交互图片
64 0
|
30天前
|
移动开发 JavaScript Android开发
|
30天前
|
前端开发 JavaScript
前端 JavaScript 与 HTML 怎么实现交互
前端 JavaScript 与 HTML 怎么实现交互
|
30天前
|
PHP Windows
php扩展com_dndnet(PHP与.NET框架进行交互)
php扩展com_dndnet(PHP与.NET框架进行交互)
php扩展com_dndnet(PHP与.NET框架进行交互)
|
30天前
|
JavaScript C#
【傻瓜级JS-DLL-WINCC-PLC交互】2.wincc使用C#开发的.net控件
【傻瓜级JS-DLL-WINCC-PLC交互】2.wincc使用C#开发的.net控件
51 0
|
30天前
|
JavaScript Linux C#
【傻瓜级JS-DLL-WINCC-PLC交互】1.C#用windows窗体控件创建.net控件
【傻瓜级JS-DLL-WINCC-PLC交互】1.C#用windows窗体控件创建.net控件
83 0