TOC

This article has been localized into Portuguese by the community.

Controles básicos:

O controle RadioButton

O controle RadioButton permite que você forneça ao usuário uma lista de possíveis opções, com apenas uma delas selecionada ao mesmo tempo. Você pode conseguir o mesmo efeito, usando menos espaço, com o controle ComboBox, mas um conjunto de RadioButtons tendem a dar ao usuário uma melhor visão geral das opções que eles têm....

<Window x:Class="WpfTutorialSamples.Basic_controls.RadioButtonSample"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="RadioButtonSample" Height="150" Width="250">
	<StackPanel Margin="10">
		<Label FontWeight="Bold">Are you ready?</Label>
		<RadioButton>Yes</RadioButton>
		<RadioButton>No</RadioButton>
		<RadioButton IsChecked="True">Maybe</RadioButton>
	</StackPanel>
</Window>

Tudo o que fizemos foi adicionar um rótulo com uma pergunta e, em seguida, três botões de opção, cada um com uma resposta possível. Definimos uma opção padrão usando a propriedade IsChecked no último RadioButton, que o usuário pode alterar simplesmente clicando em um dos outros botões de opção. Essa também é a propriedade que você usará no Code-behind para verificar se um RadioButton está marcado ou não.

Grupos de RadioButton

Se você tentar executar o exemplo acima, verá que, conforme prometido, apenas um RadioButton pode ser verificado ao mesmo tempo. Mas e se você quiser vários grupos de botões de rádio, cada um com sua própria seleção individual? É ai que a propriedade GroupName entra em ação, o que permite que você especifique quais RadioButtons pertencem ao mesmo conjunto. Aqui está um exemplo:

<Window x:Class="WpfTutorialSamples.Basic_controls.RadioButtonSample"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="RadioButtonSample" Height="230" Width="250">
	<StackPanel Margin="10">
		<Label FontWeight="Bold">Are you ready?</Label>
		<RadioButton GroupName="ready">Yes</RadioButton>
		<RadioButton GroupName="ready">No</RadioButton>
		<RadioButton GroupName="ready" IsChecked="True">Maybe</RadioButton>

		<Label FontWeight="Bold">Male or female?</Label>
		<RadioButton GroupName="sex">Male</RadioButton>
		<RadioButton GroupName="sex">Female</RadioButton>
		<RadioButton GroupName="sex" IsChecked="True">Not sure</RadioButton>
	</StackPanel>
</Window>

Com a propriedade GroupName definida em cada um dos botões de opção, agora uma seleção pode ser feita para cada um dos dois grupos. Sem isso, apenas uma seleção para todos os seis RadioButtons seria possível.

Conteúdo customizado

O RadioButton herda da classe ContentControl, o que significa que ele pode ter conteúdo customizado e exibir próximo a ele. Se você acabou de especificar um pedaço de texto, como eu fiz no exemplo acima, o WPF irá colocá-lo dentro de um controle TextBlock e exibi-lo, mas isso é apenas um atalho para facilitar as coisas para você. Você pode usar qualquer tipo de controle dentro dele, como veremos no próximo exemplo:

<Window x:Class="WpfTutorialSamples.Basic_controls.RadioButtonCustomContentSample"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="RadioButtonCustomContentSample" Height="150" Width="250">
	<StackPanel Margin="10">
		<Label FontWeight="Bold">Are you ready?</Label>
		<RadioButton>
			<WrapPanel>
				<Image Source="/WpfTutorialSamples;component/Images/accept.png" Width="16" Height="16" Margin="0,0,5,0" />
				<TextBlock Text="Yes" Foreground="Green" />
			</WrapPanel>
		</RadioButton>
		<RadioButton Margin="0,5">
			<WrapPanel>
				<Image Source="/WpfTutorialSamples;component/Images/cancel.png" Width="16" Height="16" Margin="0,0,5,0" />
				<TextBlock Text="No" Foreground="Red" />
			</WrapPanel>
		</RadioButton>
		<RadioButton IsChecked="True">
			<WrapPanel>
				<Image Source="/WpfTutorialSamples;component/Images/question.png" Width="16" Height="16" Margin="0,0,5,0" />
				<TextBlock Text="Maybe" Foreground="Gray" />
			</WrapPanel>
		</RadioButton>
	</StackPanel>
</Window>

Este exemplo fica um pouco pesado, mas o conceito é bem simples. Para cada RadioButton, temos um WrapPanel com uma imagem e um pedaço de texto dentro dele. Já que agora assumimos o controle do texto usando um controle TextBlock, isso também nos permite formatar o texto da maneira que quisermos. Para este exemplo, mudei a cor do texto para corresponder à escolha. Um controle de imagem (leia mais sobre isso depois) é usado para exibir uma imagem para cada escolha.

Observe como você pode clicar em qualquer lugar no RadioButton, mesmo na imagem ou no texto, para ativá-lo, porque o especificamos como conteúdo do RadioButton. Se você o tivesse colocado como um painel separado, ao lado do RadioButton, o usuário teria que clicar diretamente no círculo redondo do RadioButton para ativá-lo, o que é menos prático.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!