Silverlight在嵌入式領域發揮的作用絕對不僅僅只有增加Web的用戶體驗而已。很多嵌入式設備需要豐富多彩的用戶交互界面,比如ATM、自動售貨機、自助查詢終端、老虎機(喔)……Windows Embedded Standard的主要應用領域恰好在這幾個方面,所以Silverlight對于來說Windows Embedded Standard來說是如虎添翼。可能有朋友也會說,我們使用其他技術也可以實現與Silverlight類似的界面,這個肯定是沒錯。但是考慮到與后臺數據庫或Web Service的交互、部署成本、維護成本等問題,我相信Silverlight肯定會成為開發者今后開發中的首選。 好了,先不說那么多,我們下一步要做的是將Silverlight變成WES的主界面,WES啟動之后直接進入到Silverlight的應用之中。我們知道Silverlight是Host到IE等瀏覽器中運行的,在WES中也是這樣,而Silverlight的部署有兩種方式:第一種是將Silverlight文件部署到WES的Image中,隨Image一起發布;另一種是讓瀏覽器啟動后訪問Internet上的某個Silverlight站點。這兩種方法有各自的應用場景,我們在這里不做過多分析。在這里,我們挑選比較難得一種:將Silverlight文件與WES的Image一起發布。 第一步,我們要創建一個組件:這個組件應該是一個Shell組件,在系統啟動后不進入我們傳統意義上的“桌面”,而是直接啟動這個組件中指定的應用程序。而且組件中還應該包括一些Silverlight相關的文件、一些注冊表項,還有一些高級設置。稍后我們會看得到。 我們還是先打開我們創建組件的工具:Component Designer。Windows Embedded Standard沒有一個完整的IDE環境,所以做什么事情的時候要分別打開不同的工具。 Component Designer的界面如下,我們要先選擇File-New創建一個新的組件,然后保存這個組件,并為sld文件設置一個文件名稱。 接下來,我們要創建一個Repositories,這個相當于給組件住的房子。組件是保存在數據庫中的,而Repositories在數據庫中可以起到隔離組件的作用,而且也比較方便我們維護和升級組件。 我們右鍵點擊上圖中Repositories節點,選擇“Add Repository”來創建一個新的Repositories。首先為Repositories起個名字,寫在右側屬性窗口的Name中,然后還要點擊Source Path后邊的Browse按鈕。Source Path顧名思義,我們要為該Repositories的源文件找一個保存的位置,而我們一般也會把組件所需的文件都放到這個文件夾下。這個文件夾一般沒有規定,但是最好放到C盤下,自己創建個文件夾就可以了。 接下來,我們就該添加組件了,在上圖的Components節點上右鍵單擊,在右鍵菜單上選擇“Add Component”。 創建組件之后,第一件事是在右側的屬性窗口中修改名字。 因為我們創建的這個組件是一個Shell組件,所以我們還要規定它在組件庫中的原型組件,點擊Prototype后邊的Browse按鈕。 我們會看到下圖的對話框,初始化可能會花費一些時間。選擇Software | System | User Interface | Shells下的Shell Prototype Component組件,作為我們組件的原型組件。 接下來還需要點擊Advanced按鈕,定義啟動時的自定義動作: 在上面的對話框中,點擊Add按鈕添加一個叫做“cmiShellPath”的擴展屬性,類型為String,具體指為: %16426%\Internet Explorer\iexplore.exe -k "C:\SilverlightApplication2\Default.html" 怎么樣看著眼熟吧,沒錯就是啟動一個IE瀏覽器的實例,-k表示全屏顯示,而后邊的文件路徑不是一成不變的,要根據你將這個HTML文件放到哪里而決定。如果是在線的網站其實更簡單一些,直接寫網址就好了。 然后為組件指定Repositories,點擊“Repositories…”按鈕,會彈出下面的對話框。好了,直接選擇咱們前邊創建的,就可以了。 然后到了非常重要的一步,添加文件。這個問題也曾經困擾了我很久,我們明天再說。 |