silverlight/xap如何接收参数?

silverlight不能象flash一样,直接以类似xxx.xap?name=123的方式传递参数,而是要用另一种方式实现:

html部分(注意高亮部分):

<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
 <param name="source" value="ClientBin/InitParams.xap?color=red"/>
 <param name="onerror" value="onSilverlightError" />
 <param name="background" value="white" />
 <param name="minRuntimeVersion" value="3.0.40624.0" />
 <param name="autoUpgrade" value="true" />
 <param name="InitParams" value="name=jimmy.yang,age=30" />
 <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>

注:InitParams传递参数时,必须以x=y,a=b这样的键值对格式传入

cs部分:

App.Xaml.cs:

public partial class App : Application
{
 IDictionary<string, string> _dic;
 ...
        private void Application_Startup(object sender, StartupEventArgs e)
        {
   _dic = e.InitParams;
            this.RootVisual = new MainPage(_dic);  
        }
 ...

注:这里用e.InitParams取得传入的参数,同时利用new MainPage(_dic)将参数传到需要的xaml中去

MainPage.Xaml.cs部分:

public partial class MainPage : UserControl
{
IDictionary<string, string> _params;
public MainPage()
{
    InitializeComponent();            
}
public MainPage(IDictionary<string, string> dicParam)
{
    InitializeComponent();
 _params = dicParam;
    StringBuilder sb = new StringBuilder();
    foreach (var item in _params)
    {
 sb.Append(string.Format("key:{0} , value:{1}" + Environment.NewLine, item.Key, item.Value));
    }
    txtParam.Text = sb.ToString();
}
}

注:这里,我们重载了一个带参数的构造函数用于接受参数

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏草根专栏

使用两种方法让 ASP.NET Core 实现遵循 HATEOAS 结构的 RESTful API

HATEOAS(Hypermedia as the engine of application state)是 REST 架构风格中最复杂的约束,也是构建成熟 ...

601110
来自专栏菩提树下的杨过

c#:使用using关键字自动释放资源未必一定就会有明显好处

记录这篇文章的灵感来源来自今天下班前与同事的小小争论,我现在开发的一个项目中,有这样一段代码: public string ToXML() { ...

23180
来自专栏Java成神之路

Java钉钉开发_02_免登授权(身份验证)

将所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式 (即 key1=value1&key2=value2…)拼接成字符串...

49220
来自专栏岑玉海

WF追忆

  前一阵子学习了一下工作流,现在写个总结记录一下这个过程。要弄工作流,首先就要有个界面来画图,做web的,没办法,只能选择javascript和silverl...

29460
来自专栏hbbliyong

C#基础知识回顾-- 反射(4)

从程序集获得类型   先说点题外话,现在技术真的发展太快了。我这边还很多东西半生不熟 呢,那边又出现了好多有趣的新东西让你眼红不已。学还是不学这还真是 个问题。...

29660
来自专栏技术博客

C#函数方法集

1、DateTime 数字型 System.DateTime currentTime=new System.DateTime();

15020
来自专栏Java成神之路

Java微信公众平台开发_06_素材管理

33420
来自专栏圣杰的专栏

Parallel线程安全问题

废话不多说,上代码: using System; using System.Collections.Generic; using System.Threadin...

33150
来自专栏Create Sun

mvc+webapi 单元测试 3.使用Moq模拟AspnetMvc中的Request.Form

 1.前言     现在这个项目已经有阶段性的模块完成了,所以就想着对这些模块进行单元测试,以保证项目的代码的质量。首先虽然标题是mvc+webapi实质上我只...

66290
来自专栏跟着阿笨一起玩NET

Linq to XML 读取XML 备忘笔记

本文转载:http://www.cnblogs.com/infozero/archive/2010/07/13/1776383.html

11000

扫码关注云+社区

领取腾讯云代金券