WPF - Criando um UserControl
Neste tutorial eu vou mostrar como criar um UserControl em uma aplicação WPF.
Um UserControl é um controle criado a partir dos controles já existentes agregando esses controles em um controle único com o objetivo de otimizar o seu código. Ele é indicado quando você percebe que existe uma repetição em uma estrutura da qual participam controles de forma que se você criar um controle composto com esses controles a manipulação dos dados será facilitada.
Obs: Não confunda um User Control com um Custom Control da WPF. Um Custom Control é um controle derivado de outro controle e é usado quando você cria um controle a partir de outro existente para incluir uma funcionalidade que o controle existente não possui.
Para mostrar como usar esse recurso eu vou criar um cenário onde temos que exibir em uma janela de uma aplicação WPF, em controles TextBlock, os dados de clientes como nome, endereço e telefone sendo que essa estrutura será repetida em outras janelas.
Dessa forma eu vou criar um UserControl agregando alguns controles TextBlock para montar essa estrutura de dados em um único controle para poder usá-lo em uma aplicação WPF para exibição de dados.
Criando a aplicação WPF e o User Control
Abra o Visual Basic 2010 Express Edition e crie uma nova aplicação do tipo WPF Application com o nome Wpf_UserControl;
No menu Project clique em Add New Item e a seguir selecione o template User Control (WPF) e informe o nome AlunoControl.xaml:
Observe que existe o modelo Custom Control (WPF) que é diferente de User Control (WPF).
Será criado o arquivo AlunoControl.xaml e aberta a janela exibindo o UserControl conforme mostrada a seguir:
Vamos remover a definição de Height e Width do UserControl e definir o controle com o seguinte leiaute:
O código XAML usado para obter o leiaute acima é mostrado abaixo:
<UserControl x:Class="AlunoControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" mc:Ignorable="d"> <Grid Height="156" Width="291"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="100" /> <ColumnDefinition /> </Grid.ColumnDefinitions> <TextBlock Text="Id" Grid.Row="0" Margin="5" VerticalAlignment="Center"/> <TextBlock Text="Nome" Grid.Row="1" Margin="5" VerticalAlignment="Center"/> <TextBlock Text="Idade" Grid.Row="2" Margin="5" VerticalAlignment="Center"/> <TextBlock Text="Email" Grid.Row="3" Margin="5" VerticalAlignment="Center"/> <TextBox Grid.Row="0" Grid.Column="1" Margin="5" Text="{Binding Id,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/> <TextBox Grid.Row="1" Grid.Column="1" Margin="5" Text="{Binding Nome,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/> <TextBox Grid.Row="2" Grid.Column="1" Margin="5" Text="{Binding Idade,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/> <TextBox Grid.Row="3" Grid.Column="1" Margin="5" Text="{Binding Email,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/> </Grid> </UserControl> |
O código é muito simples, definimos um Grid
com 4 linhas e duas colunas onde incluímos 4 controles
TextBlock. As definições de DataBinding também são
necessárias para que os dados sejam vinculados aos controles.
Pronto com isso já temos o nosso UserControl definido e pronto para ser usado.
Usando o UserControl em nossa aplicação
Vamos agora usar o UserControl AlunoControl que criamos acima em nossa aplicação.
Abra o arquivo MainWindow.xaml e no código XAML vamos incluir as seguintes declarações:
Conforme mostra a figura abaixo vemos o resultado da inclusão das duas linhas de código XAML acima:
Incluindo um
User Control na ToolBox
Você pode incluir o UserControl na ToolBox de forma que ele fique sempre disponível.
Para fazer isso siga os seguintes passos:
1. Clique com o botão direito do mouse sobre a janela Toolbox;
2. A seguir selecione a opção Choose Items... no menu de contexto;
3. Em seguida , na janela Choose
ToolBox Items, selecione a aba WPF Components
e clique no botão Browse.
4. Localize o projeto onde esta localizado o
UserControl que você deseja incluir;
5. Clique no botão OK;
Pronto o seu User Control irá estar incorporado a ToolBox.
Veja neste artigo como realizar a vinculação de dados em User Controls: WPF - Como vincular itens a um UserControl
"Em verdade , em verdade vos digo que vem a hora, e agora é, em que os mortos ouvirão a voz do Filho de Deus, e os que a ouvirem viverão."(João-5:25)
Referências: