[Windwos Phone 8]多個按鈕的共用事件
前言
---------------------------------------------------------------------------------------------
在Windows Phone的開發中,我們有時候會遇到很多個按鈕的Click事件都是一樣的,
但是我們如果一個一個寫程式碼的話,是不是有點太麻煩了呢?今天要教大家一種
不用這麼累方法,那就是共用事件!它可以讓多個按鈕共享同一個相同的事件處理程序喔!
以下將為大家示範
實作
-------------------------------------------------------------------------------------------
1.建立一個新專案
2.在畫面上拖拉3個RadioButton和一個TextBox
3.在程式碼修改其名稱與內容
<!--TitlePanel 包含應用程式的名稱和頁面標題-->
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
<TextBlock Text="我的應用程式" Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/>
<TextBlock Text="共用事件" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
</StackPanel>
<!--ContentPanel - 其他內容置於此-->
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<RadioButton x:Name="rdbRed" Content="紅" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top"/>
<RadioButton x:Name="rdbGreen" Content="綠" HorizontalAlignment="Left" Margin="10,87,0,0" VerticalAlignment="Top"/>
<RadioButton x:Name="rdbBlue" Content="藍" HorizontalAlignment="Left" Margin="10,159,0,0" VerticalAlignment="Top"/>
<TextBox x:Name="txtShow" HorizontalAlignment="Left" Height="72" Margin="10,236,-10,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="456"/>
</Grid>
4.接著我們到MainPage.xaml.cs新增其共用事件
public MainPage()
{
InitializeComponent();
//rdbBlue, rdbGreen, rdbRed的Checked事件被觸發皆共用rdbBlue_Checked事件函式
rdbBlue.Checked += rdbBlue_Checked;
rdbGreen.Checked += rdbBlue_Checked;
rdbRed.Checked += rdbBlue_Checked;
}
// sender物件表示觸發事件的來源控制項, e為觸發的事件資訊
void rdbBlue_Checked(object sender, RoutedEventArgs e)
{
// 將觸發事件的來源控制項轉型成myRdb的RadioButton物件
RadioButton myRdb = (RadioButton)sender;
txtShow.Text = "你選"+ myRdb.Content.ToString();
}
}
5.然後我們來測試一下
結語
--------------------------------------------------------------------------------------------------------
以上示範是不是讓您更了解共用事件的操作了呢?
希望對大家有幫助^_^
如果上述有錯誤,請不吝指教喔! 感謝大家
參考資料
--------------------------------------------------------------------------------------------------------