quarta-feira, 13 de janeiro de 2010

Silverlilght 4.0 Área de Transferência (Clipboard)

          Neste artigo vou mostrar mais uma novidade no 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:





o xaml ficará com a seguinte aparência:





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 testo 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.




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:




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

Qualquer dúvida é só enviar um comentário ou um email.
emersonti@hotmail.com
http://emersonti.blogspot.com/search/label/Silverlight
http://emersonti.blogspot.com/2009/11/microsft-anuncia-silverlight-40.html

2 comentários:

  1. Muito legal, mas eu gostaria de saber se tem como mandar outros tipos de objetos, como por exemplo um bitmap.

    ResponderExcluir
  2. Ola Adriano, até o presente momento só é possível fazer com texto puro, mas eu acredito que em breve será possível fazer com outros tipos de dado.

    ResponderExcluir