将参数传递给Silverlight

时间:2010-05-25 16:48:15

标签: silverlight

有关如何在启动时从URL QueryString传递参数到Silverlight的任何想法?

谢谢

3 个答案:

答案 0 :(得分:3)

您可以采取的一种方法是公开可以从JavaScript访问的方法。因此,在xaml.cs文件中,您需要将以下内容添加到构造函数中:

this.Loaded += new RoutedEventHandler(Page_Loaded);

然后添加以下事件处理程序:

void Page_Loaded(object sender, RoutedEventArgs e)
{
    HtmlPage.RegisterScriptableObject("YourControlName", this);
}

[ScriptableMember]
public void YourMethod(string yourData)
{
    // Do your stuff here
}

然后在实例化Silverlight控件的ascx或aspx页面中添加以下JavaScript:

var silverlightControl;

function onSilverlightLoad(sender, args) {
    silverlightControl = sender.getHost();
    var yourData = "some data";
    silverlightControl.Content.YourControlName.YourMethod(yourData);
}

这也意味着您的Silverlight控件必须通过<object...标记而非<asp:Silverlight...

进行实例化

答案 1 :(得分:2)

虽然Chris的方法可行,但通过Silverlight initialization parameters feature传递启动信息更容易。

答案 2 :(得分:2)

如果您只需要获取查询字符串的键值对,那么使用HtmlPage类的方法就会简单得多:

HtmlPage.Document.QueryString["your_key"];