Working with WPF RadioButton using C# and XAML

This tutorial shows you how to create and use a RadioButton control available in Windows Presentation Foundation (WPF) and XAML. A RadioButton is usually used in a group with multiple options where one must be selected.

WPF Radio Button control 

The RadioButton element 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 specify the horizontal and vertical alignments.

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

The following code snippet sets the name, height, and width of a RadioButton control. The code also sets the horizontal alignment to the left and the vertical alignment to the top.

  1. <RadioButton Margin="10,10,0,13" Name="RadioButton1" HorizontalAlignment="Left"VerticalAlignment="Top" Width="150" Height="15" Background="Yellow " Foreground="Blue">  
  2.    C# Corner  
  3. </RadioButton>  

The RadioButton looks like the following.

RadioButton
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"> C# Corner </RadioButton>  
  2. <RadioButton Margin="10,5,0,0" GroupName="MCSites" Background="Yellow" Foreground="Orange"> VB.NET Heaven </RadioButton>  
  3. <RadioButton Margin="10,5,0,0" GroupName="MCSites" Background="Yellow" Foreground="Green"> Longhorn Corner </RadioButton>  
  4. <RadioButton Margin="10,5,0,0" GroupName="MCSites" Background="Yellow" Foreground="Purple"> Mindcracker </RadioButton>  

The output looks as in Figure 2. If you select one RadioButton then the previous RadioButton will be unselected.

RadioButton Grouping
Figure 2

Adding a Checked Event Handler

The RadioButton control has the Checked event as the 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" Background="Yellow" Foreground="Blue" Checked="Btn1_Checked">  

The following checked event handler sets the foreground and background colors of the checked RadioButton and sets black and white for the rest of them.

  1. privatevoid Btn1_Checked(object sender, RoutedEventArgs e) {  
  2.     Btn1.Foreground = Brushes.Blue;  
  3.     Btn1.Background = Brushes.Yellow;  
  4.     Btn2.Foreground = Brushes.Black;  
  5.     Btn2.Background = Brushes.White;  
  6.     Btn3.Foreground = Brushes.Black;  
  7.     Btn3.Background = Brushes.White;  
  8.     Btn4.Foreground = Brushes.Black;  
  9.     Btn4.Background = Brushes.White;  
  10. }  

The new RadioButton group looks as in Figure 3.

 Adding a Checked Event Handler
Figure 3.

Finding a Selected Item in the Group

The IsChecked property of RadioButton indicates whether 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. privatevoid button1_Click(object sender, RoutedEventArgs e) {  
  2.     if (Btn1.IsChecked == true) MessageBox.Show(Btn1.Content.ToString());  
  3.     elseif(Btn2.IsChecked == true)  
  4.     MessageBox.Show(Btn2.Content.ToString());  
  5.     elseif(Btn3.IsChecked == true)  
  6.     MessageBox.Show(Btn3.Content.ToString());  
  7.     else MessageBox.Show(Btn4.Content.ToString());  
  8. }  

Alternatively, you may want to replace the "if..else" statement with the "switch" statement to make your code read and work better.

Summary

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


Mindcracker
Founded in 2003, Mindcracker is the authority in custom software development and innovation. We put best practices into action. We deliver solutions based on consumer and industry analysis.