當AppBar Click時能變換Icon,這是我最近用到的,寫成文章給大家參考參考。
前言
因為最近有用到這功能,分享給大家參考參考,如有抄襲請E-mail: boy22200011@hotmail.com 通知。
實作
Step1.首先開啟專案[檔案>新增>專案],選擇Windows Phone 應用程式。
在來就是新增我們今天會用到的AppBarIcon圖,圖哪裡找?Where?不知道的可以去參考這篇 當麻許AppBar。
也可以自行設計,原圖解析度是76X76,實際上在手機裡面是48X48,這邊說明有錯請告知(請炮小力一點^_^)。
我的作法是,直接把上面那篇文章所說的AppBar資料夾,直接加入專案,首先在專案加入一個資料夾取名字叫AppBar,
再把圖檔整個加入到AppBar資料夾。如以下圖。
Step2.在方案總管底下點選MainPage.xaml.cs,進到後端。
Step3.再來就是CodingTime,進到MainPage.xaml.cs檔裡面,預設應該會出現幫你註解掉ApplicationBar的程式碼。假使沒有的也不用擔心,因為雙手萬能。
這邊我就用打得,首先在MainPage()裡面建一個AddAppBar的方法。如果出現紅色波浪線,正常,因為還沒建方法。
可以這樣做(偷吃步),滑鼠游標移到AddAppBar的第一個字,就會出現以下,點選產生方法。
就會出現AddAppBar方法,再來就是將Throw new NotImplementedException()給Delete,開始在裡面寫程式。
Step3.首先將頁面的AppBar建一個實體出來。在來就是建一個ApplicationBarIconButton的實體
,我取名字叫做NewAppBar,在來就是設定它的IconUri、Text屬性,看到這邊有點煩吼,讓我們繼續看下去。
以下是建出來的樣子。
private void AddAppBar() { //將頁面的ApplicationBar 設定為ApplicationBar 的新執行個體。 ApplicationBar = new ApplicationBar(); //建立一顆新的AppBarButton。 ApplicationBarIconButton NewAppBar = new ApplicationBarIconButton(); //設定按鈕的文字值 NewAppBar.Text = "肥貓"; //設定Icon圖來源,在AppBar資料夾底下的transport.play.png圖,設為相對路徑。 NewAppBar.IconUri = new Uri("/AppBar/transport.play.png", UriKind.Relative); //這行比較重要,把剛剛建好的NewAppBar丟給實體ApplicationBar的Buttons裡面。 ApplicationBar.Buttons.Add(NewAppBar); }
Step4.在Step1、Step2、Step3,看了很傷眼對不對,撐住,接下來才是重點,讓我們繼續看下去。
再來我們要讓NewAppBar點下去會有作用,我們就建一個NewAppBar的Click事件,這邊我的判斷式
,是判斷,當NewAppbar的Text值等於肥貓,它就會更改Icon圖及文字內容,否則維持原態。如下圖。
給他Tab兩下。
產生NewAppBar的Click方法,當然也要刪掉內容物(Throw……)。
這邊需要注意一下,因為產生的Click方法它是不認得NewAppBar的,所以必須加這行
,讓Click事件認得它是NewAppBar。
void NewAppBar_Click(object sender, EventArgs e) { ApplicationBarIconButton NewAppbar = ApplicationBar.Buttons[0] as ApplicationBarIconButton; }
在來就是寫判斷式。
void NewAppBar_Click(object sender, EventArgs e) { ApplicationBarIconButton NewAppbar = ApplicationBar.Buttons[0] as ApplicationBarIconButton; if(NewAppbar.Text == "肥貓") { NewAppbar.Text = "懶貓"; NewAppbar.IconUri = new Uri("/AppBar/transport.pause.png", UriKind.Relative); } else { NewAppbar.Text = "肥貓"; NewAppbar.IconUri = new Uri("/AppBar/transport.play.png", UriKind.Relative); } }
結果
當按下AppBarButton的時候就會變換了。