Windows Phone開發(17) URI對映

2021-09-06 14:09:55 字數 1894 閱讀 6592

原文:

windows phone開發(17):uri對映

前面在講述導航的知識,也講了控制項,也講了資源,樣式,模板,相信大家對ui部分的內容應該有了很直觀的認識了。那麼今天講什麼呢?不知道大家在練習導航的時候是否發現乙個問題?

當我們向頁面傳遞乙個引數的時候,是沒問題的,但是,如果我們在xaml中使用這樣的uri時,你敢保證它還能正常執行呢?

/pageatest.xaml?name=小強&age=100

你發現,嘿,咋回事了?怎麼報錯了?不知道有沒有去思考,為什麼呢?

好,先問你一句,你學過web開發嗎?或者說,了解html嗎?如果你了解,好,你已經找到答案了。

哈哈,對了,就是編碼和轉義的問題,「&」符號用在xaml中同樣需要轉義,但你一定發現了,如果把它換成轉義符,一來好像很難看,二來,也不太安全。大家知道,mvc中是使用什麼來訪問頁面的?是的,能過控制器的行為,而且是經過uri對映的。

同理,在silverlight的導航中,也同樣需要的,在wp中依然適用。

先說一下不使用uri對映的情況下如何解決該問題。

對的,就是改用c#**來導航,這樣就可以避開了xaml轉義了。

private void button1_click(object sender, routedeventargs e)

看看效果吧,怎麼樣,解決了嗎?

別高興著,主角還出場呢,今天我們講的uri對映,所以下面我們要用uri對映的方式來完美解決這問題。

用uri對映難嗎?不難,很簡單,我們用到兩個類:

好的,那麼,uri是如何對映的?相信玩過c#的朋友,一定會熟悉這種語句:

string ss = string.format("你的人品值是:", -100);

上面的是佔位符,01234依次往下推,上面原理相信大家都懂,首先在「你的人品值是:」中找到「」,然後用-100為替換,所以上面的字串變為:你的人品值是:-100.

uri對映的原理是一樣的,比如:

/student/    ---->     /studentdetail.xaml?sid=

大家猜到上面的uri是怎麼對映的嗎?

看左邊,其它是多餘,是「偽」兵,用來迷惑敵人的,真正的資料是,而箭頭右邊就是真正的uri位址,它也有乙個,對,它在左的偽uri中找到,然後用它的值來替換右邊的。

理解嗎?例如我傳乙個uri,/student/201201030,而最終對映後的真實地是/studentdetail.xaml?sid=201201030,哈,現在明白嗎?

不明白?我再舉幾個,你自己研究一下看看找到規律沒有?

/cat/   --->   /categ.xaml?id=

/cat/5025  --->    /categ.xaml?id=5025

//    ---->    /goodslist.xaml?gid=&gname=

/302/天地七号    ----->    /goodslist.xaml?gid=302&gname=天地七号

///   ---->     /listmat.xaml?***=&acord=&swtype=

/女/3/7         ------>          /listmat.xaml?***=女&acord=3&swtype=7

至於為什麼要用「/」,呵呵,因為這個不用轉義嘛 ,二為,為了讓執行庫可以識別佔位符的位置,也可作為分隔符,一舉兩得。

怎麼樣,有感覺了沒?還沒?不要緊,一起動手玩一玩就有感覺了。

#region uri對映

/", urikind.relative),

};#endregion

然後,回到首頁,加入以**導航**。

Windows Phone 開發環境

windows phone模擬器支援 gpu硬體加速。1.安裝windows phone develop tools 工具注意,一定要下最新版的,不然開啟wisual studio 2010 express for windows phone 的安裝包 vm web2.exe 如圖所示 2.安裝mi...

Windows Phone開發(15) 資源

活字印刷術是我國 四大發明 之一,畢昇在發明活字印刷術之後,他很快發現乙個問題,隨著要印刷資料的不斷增加,要用到的漢字數目越來越多,於是,他必須尋找一種有效的辦法去管理那些刻有漢字的立方體 暫且就叫立方體,其實的確是個立方體 所以,他就和助手們一起努力,為這些立方體進行記錄,有標識地放好,在印刷過程...

Windows Phone開發(15) 資源

活字印刷術是我國 四大發明 之一,畢昇在發明活字印刷術之後,他很快發現乙個問題,隨著要印刷資料的不斷增加,要用到的漢字數目越來越多,於是,他必須尋找一種有效的辦法去管理那些刻有漢字的立方體 暫且就叫立方體,其實的確是個立方體 所以,他就和助手們一起努力,為這些立方體進行記錄,有標識地放好,在印刷過程...