[Silverlight] InitParams 在Silverlight 物件起始時傳值進去
2010/08/11
話說,如果有時候因為專案需求,可能在Silverlight 一執行的時候
就需要把一些值給帶進去…
就可以能需要這方法,如果不是這麼的緊迫需求,倒是可以執行起來後
透過呼叫Javascript的方式取得(可參考 如何在Silverlight中呼叫Javscript)
最近剛好因為有朋友問就想說筆記一下…
首先得再HTML 中插入Silverlight的tag群中加入此一Element “<param name="initparams" value="id=1,name=Dracula" />”
此時很明顯,我傳入兩個變數一個名為id , 另一個名為name
加入後Code 如下:
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
<param name="source" value="ClientBin/InitParaMemo.xap" />
<param name="onError" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="4.0.50401.0" />
<param name="initparams" value="id=9527,name=訪客" />
<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><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div>
之後我們稍微修改一下 App.xaml.cs 中的 Application_Startup
其接用方法為 e.InitParams["變數名稱"]
private void Application_Startup(object sender, StartupEventArgs e)
{
this.RootVisual = new MainPage(e.InitParams["id"], e.InitParams["name"]);
}
先別急你現在Compile一定會錯 ,因為你多傳兩個參數進去…
所以我們在MainPage 中… 修改一下 constructor
public MainPage(string id,string name)
{
MessageBox.Show(name + ",您好!!您的編號是"+id);
InitializeComponent();
}
接下來就可以編譯通過…
執行一下你會發現…
他在InitializeComponent 前就已經接到你要傳得值…
這時候如果配合asp.net 可以做的事情就很多…
這邊也不贅述…
如果覺得我寫得不夠清楚..可以參閱 http://msdn.microsoft.com/zh-tw/library/cc838255(VS.95).aspx
這邊有一段MSDN 的備註 稍微注意一下:
InitParams 屬性在執行個體化期間為一次性寫入,而在執行階段為唯讀。在初始化後無法設定這個屬性。當您在 HTML 網頁中建立 Silverlight 外掛程式的執行個體時,InitParams 初始化參數就會指定使用者定義的參數值。InitParams 提供一個便利的方式讓您從 HTML 文件物件模型 (DOM) 將自訂字串值傳遞至 Silverlight 程式撰寫模型。
每次MSDN的備註,都很喜歡來一些很有禪意的話…哈哈…
範例:
讚一下:
範例下載:
標籤:
Silverlight
|
This entry was posted on 晚上10:49
and is filed under
Silverlight
.
You can follow any responses to this entry through
the RSS 2.0 feed.
You can leave a response,
or trackback from your own site.
訂閱:
張貼留言 (Atom)
0 意見:
張貼留言