在WP7複寫硬體返回鍵的動作

在WP7中的硬體按鍵中,返回鍵預設的功能是返回上一頁,或是返回上一個執行的App;而在開發WP7的應用程式時,有時我們必須去處理這個動作,例如說目前的頁面是給使用者填入資料用的,在接收到硬體返回鍵的動作時,應該要加以提醒使用者,以免離開後輸入的資料都不見了,畢竟在裝置上面打字不是一件舒服的事情的..

在WP7中的硬體按鍵中,返回鍵預設的功能是返回上一頁,或是返回上一個執行的App;而在開發WP7的應用程式時,有時我們必須去處理這個動作,例如說目前的頁面是給使用者填入資料用的,在接收到硬體返回鍵的動作時,應該要加以提醒使用者,以免離開後輸入的資料都不見了,畢竟在裝置上面打字不是一件舒服的事情的..

那麼應該要怎麼去處理這個動作呢?程式碼的部分也很簡單,首先是掛載事件的處理

this.BackKeyPress += new EventHandler(SecondPag_BackKeyPress);

之後做相關的處理就可以了,比如說下面這個樣子

 void SecondPag_BackKeyPress(object sender, System.ComponentModel.CancelEventArgs e)
        {
            if (!boltmp)
            {
                boltmp = true;
                e.Cancel = true;
                this.PageTitle.Text = "BackKey canceled";
            }
        }

其中e.Cancel=True這行就是取消返回的動作了,是不是很簡單呢?

另外在頁面轉換的過程中,他是以環狀的方式在進行,也就是說當你用Navigate的方式去尋覽至一個頁面時,這個頁面就會被加入堆疊中,而按下back就會回到堆疊中記錄的上一個頁面,如果你的App使用情境跟這個方式有所牴觸的話,下面這邊有一篇很棒的文章可以參考喔,把Sample下載回來跑一下,就可以知道他是在做什麼的了
Solving Circular Navigation in Windows Phone Silverlight Applications