Using XAML RadioButton in WPF

XAML RadioButton in WPF

The XAML RadioButton represents a radio button. This tutorial shows you how to create and use a RadioButton control in WPF.

Introduction

A RadioButton is usually used in a group with multiple options where one must be selected.

The RadioButton tag represents a RadioButton control in XAML.

  1. <RadioButton></RadioButton>  
The Width and Height properties represent the width and the height of a RadioButton. The Name property represents the name of the control, which is a unique identifier of a control.

The Margin property tells the location of a RadioButton on the parent control. The HorizontalAlignment and VerticalAlignment properties are used to set horizontal and vertical alignments.

The Background and Foreground properties represent the background and foreground colors of a RadioButton.

The following code snippet sets the name, height and width of a RadioButton control. The code also sets the horizontal alignment to left and the vertical alignment to top.
  1. <RadioButton Margin="10,10,0,13" Name="RadioButton1" HorizontalAlignment="Left" VerticalAlignment="Top" Width="150" Height="15" Backgroun      d="Yellow " Foreground="Blue">  
  2.       C# Corner  
  3. </RadioButton>  
The RadioButton looks as in following:



Figure 1. RadioButton

RadioButton Grouping


The GroupName property of a RadioButton assigns a RadioButton to a group. Only one RadioButton can be in the selected states at once and by selecting a new RadioButton unselects the previous selected RadioButton.

The following code assigns four RadioButton controls to a group called MCSites.
  1. <RadioButton Margin="10,5,0,0" GroupName="MCSites" Background="Yellow" Foreground="Blue" >  
  2.     C# Corner  
  3. </RadioButton>  
  4. <RadioButton Margin="10,5,0,0" GroupName="MCSites" Background="Yellow" Foreground="Orange" >  
  5.     VB.NET Heaven  
  6. </RadioButton>  
  7. <RadioButton Margin="10,5,0,0" GroupName="MCSites" Background="Yellow" Foreground="Green" >  
  8.     Longhorn Corner  
  9. </RadioButton>  
  10. <RadioButton Margin="10,5,0,0" GroupName="MCSites" Background="Yellow" Foreground="Purple" >  
  11.     Mindcracker  
  12. </RadioButton>   
The output looks as in Figure 2. If you select one RadioButton, the previous RadioButton will be unselected.



Figure 2

Adding a Checked Event Handler


RadioButton control has Checked event as default event and raised when you check a radio button. The following code snippet adds the event handler.
  1. <RadioButton Name="Btn1" Margin="10,5,0,0" GroupName="MCSites"   
  2.    Background="Yellow" Foreground="Blue" Checked="Btn1_Checked">  
The following checked event handler sets the foreground and background color of the checked RadioButton and sets black and white for the rest of them.
  1. private void Btn1_Checked(object sender, RoutedEventArgs e)  
  2. {  
  3.     Btn1.Foreground = Brushes.Blue;  
  4.     Btn1.Background = Brushes.Yellow;  
  5.     Btn2.Foreground = Brushes.Black;  
  6.     Btn2.Background = Brushes.White;  
  7.     Btn3.Foreground = Brushes.Black;  
  8.     Btn3.Background = Brushes.White;  
  9.     Btn4.Foreground = Brushes.Black;  
  10.     Btn4.Background = Brushes.White;  
  11. }  
New RadioButton group looks as in Figure 3.



Figure 3.

Finding a Selected Item in the Group


The IsChecked property of RadioButton represents whether or not a RadioButton is checked. The following code snippet on a button click event handler finds the text of the selected RadioButton in a group.
  1. private void button1_Click(object sender, RoutedEventArgs e)  
  2. {  
  3.    if( Btn1.IsChecked == true)  
  4.        MessageBox.Show(Btn1.Content.ToString());  
  5.    else if (Btn2.IsChecked == true)  
  6.        MessageBox.Show(Btn2.Content.ToString());  
  7.    else if (Btn3.IsChecked == true)  
  8.        MessageBox.Show(Btn3.Content.ToString());  
  9.    else  
  10.        MessageBox.Show(Btn4.Content.ToString());  
  11. }  
Summary

In this article, I discussed how to create and use a RadioButton control available in WPF and XAML.

Up Next
    Ebook Download
    View all
    Learn
    View all