INTRODUÇÃO
Boa noite pessoal!
Novamente estou aqui, graças a deus, podendo compartilhar com vocês algumas experiências que tenho passado com o Microsoft Silverlight. Neste post, irei abordar o componente BusyIndicator.
O QUE É O BusyIndicator
O BusyIndicator é um controle que acompanha o SilverlightToolKit, e é utilizado como um meio de mostrar feedbacks ao usuário, sobre o tempo de aguardo de operações que são realizadas, e que exigem alto processamento.
Como por exemplo: Imagine que você queira efetuar uma pesquisa de um usuário em banco de dados com meio milhão de registros, é muito provável que isso demore um pouco, então, nós podemos utilizar o BusyIndicator, que poderá apresentar uma notificação ao usuário, indicando o tempo que faltará para realizar o processamento.
ONDE ENCONTRAR?
Você irá encontrá-lo no CodePlex, clique aqui
PREVIEW
Exemplo do controle BusyIndicator, que será apresentado neste Post, e disponibilizado para download.

CÓDIGO XAML
Abaixo, temos o código XAML do BusyIndicator, sendo que a propriedade BusyContent, refere-se ao texto que será apresentado ao usuário, como neste exemplo, “Aguarde por favor…”; A propriedade IsBusy, que indica se o controle está em modo operante ou não, como neste caso, “False”, pois faremos com que ele entre em modo operante, somente quando o usuário efetuar uma ação, que envolva alto processamento.
<toolkit:BusyIndicator x:Name="busyIndicator"
BusyContent="Aguarde por favor..."
IsBusy="False"
/>
CÓDIGO C#
Abaixo, temos o código em C#, que foi implementado no evento Click do botão Entrar. Neste exemplo não houve nenhuma interação com o banco de dados, ele foi implementado para que vocês possam entender a lógica do controle BusyIndicator. Percebam que ao clicar no botão, ele ativa o modo isBusy do controle, e inicia uma Thread em paralelo, que aguarda um tempo de 3 segundos, e posteriormente inativa o modo isBusy, fazendo então, uma simulação de consulta do usuário ao banco de dados.
private void btnEntrar_Click(object sender, System.Windows.RoutedEventArgs e)
{
//Inicia modo operante
busyIndicator.IsBusy = true;
//Inicia Thread
ThreadPool.QueueUserWorkItem((state) =>
{
//Aguarda 3s
Thread.Sleep(3 * 1000);
//Altera BusyIndicator, para modo inoperante
Dispatcher.BeginInvoke(() => busyIndicator.IsBusy = false);
});
}
APLICAÇÃO – RUN
Abaixo, temos a aplicação executando em Microsoft Silverlight 4, clique no botão “Entrar”, para ativar o BusyIndicator
DOWNLOAD
Fontes Silverlight Completo-> BusyIndicatorApp
Abraços pessoal!
Robson Fernandes










