Desenvolvimento - Silverlight

Novidades do Silverlight 4 - Clipboard

Esta nova versão veio recheado de grandes novidades, neste artigo eu vou mostrar como funciona a API que fornece acesso a área de transferência da máquina cliente.

por Emerson Andrade de Souza



Neste artigo vou mostrar uma das muitas novidades do Silverlight 4.0, antes de começarmos quero resaltar que será necessário instalar o .NET Framework 4.0 Beta, e o Visual Studio 2010 Beta ou o Microsoft Expression Blend Preview for .NET 4. Vale lembrar que até o presente momento todas essas versões de softwares são betas ou CTP, por tanto não devem ser usadas em hipótese alguma em produção, o ideal é criar uma VPC e instalar os softwares para estudo.

O Silverlight 4.0 agora fornece acesso a Área de Tranferência da máquina cliente, temos agora no Silverlight 4 uma API multi-plataforma de acesso a Área de Transferência, vou mostrar aqui um exemplo simples, mas bastante útil para entender a classe Clipboard.

Nesta versão beta, o suporte é para texto Unicode (text-only), eu acredito que em breve teremos acesso a outros tipos. Basicamente a classe Sytem.WindowsClipboard tem três métodos estáticos:

  • SetText(string text) - Escreve os dados do texto unicode e o envia para a área de transferência, para depois ser acessado pelo o método Clipboard.GetText();
  • GetText() - Retorna o texto unicode da área de transferência
  • ContainsText() - Retorna um booleano que informa se há texto unicode na área de transferência.

Após um breve explicação sobre os métodos necessários para este exemplo vamos para a prática:


Crie uma nova aplicação Silverlight 4, e altere o MainPage.xaml para este codigo:

http://1.bp.blogspot.com/_yRw6_tdjrvA/S03HMb4A1rI/AAAAAAAAAGo/CVyVOSyJJAQ/s640/4.jpg

o xaml ficará com a seguinte aparência:

http://4.bp.blogspot.com/_yRw6_tdjrvA/S03HF1cpYaI/AAAAAAAAAGQ/WF3qCplNK18/s400/1.jpg

Dentro do arquivo MainPage.xaml.cs vá no EventHandler btnCopiar_Click escreva o seguinte código:
Clipboard.SetText(txtCopiar.Text);

A primeira parte ja está concluída, agora tecle F5 e faça um teste, digite um texto qualquer no textbox txtCopiar e clique no botão Copiar, agora o seu texto ja esta na área de transferência, para você fazer um teste abra um editor de texto qualquer, pode ser o Bloco de Notas e cole o texto(CTRL+V), você poderá constatar que a demo funcionou.

Agora vamos para a segunda etapa do nosso exemplo, volte para o aquivo MainPage.xaml.cs e no evento btnColar_Click digite:
txtColar.Text = Clipboard.GetText().ToString();

Teste novamente a sua aplicação teclando F5 e mais uma vez digite qualquer conteúdo no primeiro textbox e clique no botão copiar, o texto foi enviado para a área de transferência, agora clique no botão colar e você verá que o texto foi para o segundo textbox.

Importante: se em algum momento aparecer a mensagem abaixo clique em Yes, para que o Silverlight possa ter acesso a sua área de transferência. Isto é um mecanismo de segurança do silverlight.

http://1.bp.blogspot.com/_yRw6_tdjrvA/S03HJhyzUJI/AAAAAAAAAGY/8Mpa1dG0kD0/s400/2.jpg

Concluimos aqui o nosso exemplo, porém quero mostrar algumas validações que poderá ser colocadas no código caso o primeiro textbox não tiver texto ou caso não haja conteúdo na área de transferência:

http://1.bp.blogspot.com/_yRw6_tdjrvA/S03LrPFpghI/AAAAAAAAAGw/IQSSvGAURLQ/s640/3.jpg

Finalizamos aqui mais um estudo sobre as novidades do Silverlight 4.0 versão beta.

Emerson Andrade de Souza

Emerson Andrade de Souza - Atualmente está engajado em um grande projeto que envolve Silverlight, WPF, C#, DSL, SQL Server, WCF e Workflow Foundation. Já trabalhou durante muitos anos com Delphi desde a sua primeira versão e em 2001 teve seu primeiro contato com ASP.NET e C#.
Sempre dá sua a contribuição para a comunidade nos fóruns, palestras e no seu blog:
www.emersonti.blogspot.com