<Windows Phone 8>當AppBar Click時能變換Icon

  • 807
  • 0
  • 2015-09-15

當AppBar Click時能變換Icon,這是我最近用到的,寫成文章給大家參考參考。

前言

因為最近有用到這功能,分享給大家參考參考,如有抄襲請E-mail: boy22200011@hotmail.com 通知

實作

Step1.首先開啟專案[檔案>新增>專案],選擇Windows Phone 應用程式。

檔案新增專案

新增Windows phone 專案

在來就是新增我們今天會用到的AppBarIcon圖,圖哪裡找?Where?不知道的可以去參考這篇 當麻許AppBar

也可以自行設計,原圖解析度是76X76,實際上在手機裡面是48X48,這邊說明有錯請告知(請炮小力一點^_^)。

我的作法是,直接把上面那篇文章所說的AppBar資料夾,直接加入專案,首先在專案加入一個資料夾取名字叫AppBar,

再把圖檔整個加入到AppBar資料夾。如以下圖。

右鍵

新增資料夾

Appbar資料夾

右鍵加入圖

加入圖

Step2.在方案總管底下點選MainPage.xaml.cs,進到後端。

方案總管

Step3.再來就是CodingTime,進到MainPage.xaml.cs檔裡面,預設應該會出現幫你註解掉ApplicationBar的程式碼。假使沒有的也不用擔心,因為雙手萬能。

這邊我就用打得,首先在MainPage()裡面建一個AddAppBar的方法。如果出現紅色波浪線,正常,因為還沒建方法。

可以這樣做(偷吃步),滑鼠游標移到AddAppBar的第一個字,就會出現以下,點選產生方法。

產生方法

就會出現AddAppBar方法,再來就是將Throw new NotImplementedException()給Delete,開始在裡面寫程式。

產生方法2

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兩下。

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的時候就會變換了。

1       2