向silverlight传递自定义参数

时间:2022-04-22
本文章向大家介绍向silverlight传递自定义参数,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

在silverlight往往还是有一些获取不到的东西,比如说客户机的ip等的数据.可以通过初始化sl时把参数传入sl中.

1.修改page类

public Page(string passText)
 {
     InitializeComponent();
     txtPass.Text = passText;
 }

2.修改App.xaml.cs

 private void Application_Startup(object sender, StartupEventArgs e)
         {
 // Load the main control
  string passText = e.InitParams["passText"];
 this.RootVisual = new Page(passText);
         }

3.传递参数

  • 方法1: Code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<%@ Register Assembly="System.Web.Silverlight" Namespace="System.Web.UI.SilverlightControls"
    TagPrefix="asp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>passtxt</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <div style="height: 100%;">
            <asp:Silverlight ID="Xaml1" runat="server" Source="~/ClientBin/HowTo.xap" Version="2.0"
                Width="100%" Height="100%"/>
        </div>
    </div>
    </form>
</body>
</html>


  protected void Page_Load(object sender, EventArgs e)
         {
             Xaml1.InitParameters = "passText=参数_方法1";
         }
 
  • 方法2:
  <object data="data:application/x-silverlight," type="application/x-silverlight-2-b1" InitParameters="passText=123" width="100%" height="100%">
 <param name="InitParams" value="passText=参数_方法2" />
 <param name="source" value="ClientBin/HowTo.xap"/>
 <param name="onerror" value="onSilverlightError" />
 <param name="background" value="white" />
 
 <a href="http://go.microsoft.com/fwlink/?LinkID=108182" style="text-decoration: none;">
 <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none"/>
 </a>
 </object>
 

传递多个参数也是一样的.定义的时候改一下.后边的方法也类似.

public Page(string passText1,string passText2)
 {
     InitializeComponent();
     txtPass1.Text = passText1;
     txtPass2.Text = passText2;
 }

参数间用","隔开

<param name="InitParams" value="passText1=参数1,passText2=参数2" />

ok 获取参数完成 ;)

附录:获取客户机ip  

"System.Net.Dns.GetHostAddresses(System.Net.Dns.GetHostName()).GetValue(0).ToString();"

作者:nasa

联系:nasa_wz@hotmail.com

QQ:12446006