向silverlight传递自定义参数

来源:互联网 发布:骚男淘宝网 编辑:程序博客网 时间:2024/06/07 09:05

在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:

    <%@ 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" />
                
                
    <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();"

原创粉丝点击