ARTICLE

RadioButton in WPF

Posted by Dinesh Beniwal Articles | WPF using VB.NET October 05, 2010
This tutorial shows you how to create and use a RadioButton control available in Windows Presentation Foundation (WPF) and XAML.
 
Reader Level:

Introduction

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

The RadioButton tag represents a RadioButton control in XAML.

 

<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 horizontal alignment to left and vertical alignment to top.

 

<RadioButton Margin="10,10,0,13" Name="RadioButton1" HorizontalAlignment="Left" VerticalAlignment="Top" Width="150" Height="15" Background="Yellow " Foreground="Blue">

    C# Corner

</RadioButton>

The RadioButton looks like following:

RadioBtnImg1.jpg
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.

<RadioButton Margin="10,5,0,0" GroupName="MCSites" Background="Yellow" Foreground="Blue" >

    C# Corner

</RadioButton>

<RadioButton Margin="10,5,0,0" GroupName="MCSites" Background="Yellow" Foreground="Orange" >

    VB.NET Heaven

</RadioButton>

<RadioButton Margin="10,5,0,0" GroupName="MCSites" Background="Yellow" Foreground="Green" >

    Longhorn Corner

</RadioButton>

<RadioButton Margin="10,5,0,0" GroupName="MCSites" Background="Yellow" Foreground="Purple" >

    Mindcracker

</RadioButton>

The output looks like Figure 2. If you select one RadioButton, the previous RadioButton will be unselected.

RadioBtnImg2.jpg

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.  

<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 color of the checked RadioButton and sets black and white rest of them.

    Private Sub Btn1_Checked(ByVal sender As Object, ByVal e As RoutedEventArgs)
        Btn1.Foreground = Brushes.Blue
        Btn1.Background = Brushes.Yellow
        Btn2.Foreground = Brushes.Black
        Btn2.Background = Brushes.White
        Btn3.Foreground = Brushes.Black
        Btn3.Background = Brushes.White
        Btn4.Foreground = Brushes.Black
        Btn4.Background = Brushes.White
    End
Sub

 

New RadioButton group looks like Figure 3.

  RadioBtnImg3.jpg

Figure 3.

Finding a Selected Item in the Group

The IsChecked property of RadioButton represents of a RadioButton is checked or not. The following code snippet on a button click event handler finds the text of the selected RadioButton in a group.

    Private Sub button1_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
        If Btn1.IsChecked = True Then
            MessageBox.Show(Btn1.Content.ToString())
        ElseIf Btn2.IsChecked = True Then
            MessageBox.Show(Btn2.Content.ToString())
        ElseIf Btn3.IsChecked = True Then
            MessageBox.Show(Btn3.Content.ToString())
        Else
            MessageBox.Show(Btn4.Content.ToString())
        End If
    End
Sub
 

Summary

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

Login to add your contents and source code to this article
share this article :
post comment
 
6 Months Free & No Setup Fees ASP.NET Hosting!
Become a Sponsor
PREMIUM SPONSORS
  • ceTE software specializes in components for dynamic PDF generation and manipulation. The DynamicPDF™ product line allows you to dynamically generate PDF documents, merge PDF documents and new content to existing PDF documents from within your applications.
    The leading .NET charting control now features PDF, Flash and Silverlight export, visualization of large datasets and more. Deliver true charting functionality to your BI, Scorecard, Presentation or Scientific apps. Download evaluation now.
Nevron Diagram
Become a Sponsor