Comment : détecter des sélections de RadioButton
Mise à jour : novembre 2007
Lorsque plusieurs contrôles RadioButton sont regroupés, les cases d'options s'excluent mutuellement. Un utilisateur ne peut pas sélectionner plus d'un élément à la fois dans un même groupe de RadioButton. L'application supprime par programme un élément sélectionné lorsque l'utilisateur sélectionne un nouvel élément. La sélection d'une case d'option RadioButton est déterminée par l'état de sa propriété IsChecked. Vous pouvez regrouper des contrôles RadioButton en les plaçant dans un parent ou en leur attribuant un nom de groupe. L'exemple de code suivant fait les deux ; les contrôles RadioButton sont les éléments enfants d'un StackPanel, et le nom de groupe est ExpandDirectionProperty.
Quand un RadioButton est sélectionné, l'événement Checked est déclenché. Comme le montre l'exemple de code suivant, si votre application doit prendre une action quand la sélection de RadioButton change, vous pouvez ajouter un gestionnaire d'événements pour gérer l'événement Checked.
Exemple
<StackPanel>
<RadioButton Name="ExpandDown" Margin="0,10,0,10"
IsChecked="True"
Checked="ChangeExpandDirection"
GroupName="ExpandDirectionProperty">
Expand Down
</RadioButton>
<RadioButton Name="ExpandUp" Margin="0,0,0,10"
Checked="ChangeExpandDirection"
GroupName="ExpandDirectionProperty">
Expand Up
</RadioButton>
<RadioButton Name="ExpandLeft" Margin="0,0,0,10"
Checked="ChangeExpandDirection"
GroupName="ExpandDirectionProperty">
Expand Left
</RadioButton>
<RadioButton Name="ExpandRight" Margin="0,0,0,10"
Checked="ChangeExpandDirection"
GroupName="ExpandDirectionProperty">
Expand Right
</RadioButton>
</StackPanel>
Private Sub ChangeExpandDirection(ByVal Sender As Object, ByVal e As RoutedEventArgs)
If (ExpandDown.IsChecked) Then
myExpander.ExpandDirection = ExpandDirection.Down
ElseIf (ExpandUp.IsChecked) Then
myExpander.ExpandDirection = ExpandDirection.Up
ElseIf (ExpandLeft.IsChecked) Then
myExpander.ExpandDirection = ExpandDirection.Left
ElseIf (ExpandRight.IsChecked) Then
myExpander.ExpandDirection = ExpandDirection.Right
End If
'Expand myExpander so it is easier to see the effect of changing
'the ExpandDirection property for My Expander
myExpander.IsExpanded = True
End Sub
private void ChangeExpandDirection(object sender, RoutedEventArgs e)
{
if ((Boolean)ExpandDown.IsChecked)
myExpander.ExpandDirection = ExpandDirection.Down;
else if ((Boolean)ExpandUp.IsChecked)
myExpander.ExpandDirection = ExpandDirection.Up;
else if ((Boolean)ExpandLeft.IsChecked)
myExpander.ExpandDirection = ExpandDirection.Left;
else if ((Boolean)ExpandRight.IsChecked)
myExpander.ExpandDirection = ExpandDirection.Right;
//Expand myExpander so it is easier to see the effect of changing
//the ExpandDirection property for My Expander
myExpander.IsExpanded = true;
}