[Silverlight] 新手學Silverlight 4 (4) - 修改Silverlight啟動頁面

[Silverlight] 新手學Silverlight 4 (4) - 修改Silverlight啟動頁面

新手指的是我

 

本篇開始要寫程式碼

以下示範

1. 複製一份.xaml 使用者控制項後要記得修改的地方

2. 從App.xaml修改Silverlight的啟始使用者控制項(User Control)

3. 該如何從測試網頁的<object>元素定義param,傳參數給Silverlight的App.xaml

 

 

 

接續前幾篇:

對著方案裡的Silverlight專案,MainPage.xaml右鍵複製

貼上同一個Silverlight專案

image

 

image

對著「複製 – MainPage.xaml」按F2鍵修改名稱為「MyPage.xaml」

image

之後有三個地方還要手動修改,Visual Studio並不會自動重構

1. .xaml檔,UserControl的x:class

image

2. .xaml.cs檔的Class名稱

image

3. .xaml.cs檔 建構子的名稱

image

完畢後

打開MyPage.xaml的設定頁面,從左方工具箱拖拉出一個TextBlock並按下F4修改Text屬性為「這是MyPage」

image

MainPage.xaml也是類似做法,不過Text輸入「這是MainPage」

image

之後打開App.xaml.cs找到Application_Startup事件

輸入以下代碼

        private void Application_Startup(object sender, StartupEventArgs e)
        {
             UserControl firstPage = new MainPage();//預設MainPage.xaml
             if (e.InitParams.ContainsKey("firstPage") && e.InitParams["firstPage"]=="MyPage")
             {
                 firstPage = new MyPage();
             }

             this.RootVisual = firstPage;//Silverlight一啟動要先呈現的UserControl

        }

 

再到Web專案打開SilverlightApplication1TestPage.aspx找到<object>元素

追加以下的Code

image

然後按Ctrl+Shift+B建置整個方案

右鍵執行 .aspx

image

image

因為.html沒有設定<object>的InitParams,所以 .html會從MainPage.xaml開始啟動

image

 

 

 

 

 

 

 

 

 

 

 

 

 

自問自答:

Q:控制項的Name有時候是Name有時候是x:Name?

A:以TextBlock來說,從Visual Studio 2010裡拖拉出來的控制項會是Name="textBlock1"

但從Blend 4按下F4修改屬性頁籤的名稱後

image

會變成x:Name,無須在意它

 

 

 

 

下一篇超連結…