domingo, 20 de fevereiro de 2011

Recursos do Windows 7 para WPF

Com a chegada do Windows 7 vários novos recursos foram disponibilizados aos desenvolvedores. Preview da janela,Aero Peak botões de controle na barra de tarefas e notificações diretamente no ícone.
Logo no lançamento do Windows 7 era bastante complicado, se perdia muito tempo aprendendo as novas API do SDK com wrappers para o WPF. Realmente perdíamos bastante tempo mesmo que fosse apenas pra colocar um botão no Preview da barra de tarefas.
Com a chegada do WPF 4 isso tudo ficou muito mais fácil. Através da propriedade TaskbarItemInfo da Window podemos ter acesso a esta grande API do Windows 7 e aprimorar ainda mais a experiência do usuário.
TaskbarItemInfo
Esta propriedade permite que possamos interagir com o ícone da nossa aplicação na barra de tarefas. As seguintes propriedades nos proporcionam essa facilidade:
  • Description: Descrição que aparecerá acima do Preview do Aero Peak.
  • Overlay: Define uma imagem que aparecerá na mesma posição do ícone da barra de tarefas. Isso nos permite mostrar informações mesmo quando a aplicação está no plano de fundo e o usuário está executando outras ações em outros programas.
  • ThumbnailClipMargin: Se não quisermos mostrar no Aero PeakPreview parcial do Video Player a visualização completa de nossa aplicação podemos definir através dessa propriedade qual parte deve ser mostrada no Preview.
    • ProgressState: Indica o estado da aplicação. Podemos definirVisual Studio após carregar um projeto esta propriedade de modo que avise o usuário que está sendo processada uma tarefa em tempo indeterminado, que ocorreu um erro ou a aplicação está parada e requer sua atenção.
    • ProgressValue: Utilizada quando se sabe o progresso de umaProgresso de Download no Internet Explorer atividade e se quer mostrar na barra de tarefas. É muito semelhante a um ProgressBar que não esteja sendo utilizado como Indeterminate.
    • ThumbButtonInfos: Aqui podemos colocar vários botões que,Botões de controle do Media Player através do Aero Peak, façam com que o usuário interaja com a aplicação mesmo ela estando no plano de fundo. Podem ser visualizados até 7 botões ao mesmo tempo.
    Fiz uma pequena aplicação conceito para aplicar tudo isso.Video Player Criei um Video Player que busca um vídeo via Streaming do Channel9. Utilizei o TaskbarItemInfo da seguinte forma:
    • Utilizei a barra de progresso na barra de tarefas para mostrar enquanto ainda está sendo feito buffer do vídeo.
    • Quando o vídeo começar a rodar coloco um Overlay na barra de tarefas semelhante a um botão Play.
    • Defini que no Preview do Aero Peak só mostraria a parte do vídeo e não os controles.
    • Adicionei um botão para fechar diretamente no Preview (eu sei, é redundante, mas é só pra mostrar o conceito).
    Para adicionar toda essa funcionalidade a minha aplicação não levei mais do que alguns minutos. Demora mais pra achar imagens legais e tal. Mas acho que deu pra entender a ideia. O XAML que tive que adicionar é o seguinte:
    <Window.TaskbarItemInfo> <TaskbarItemInfo x:Name="StatusTaskbarItemInfo" ProgressState="Indeterminate" Description="Video Player" ThumbnailClipMargin="15,54,17,75"> <TaskbarItemInfo.ThumbButtonInfos> <ThumbButtonInfo Description="Fechar" Click="ThumbButtonInfo_Click" ImageSource="...sua imagem aqui..."> </ThumbButtonInfo> </TaskbarItemInfo.ThumbButtonInfos> </TaskbarItemInfo> </Window.TaskbarItemInfo>
    O código do exemplo bem como uma aplicação pronta (ClickOnce) pode ser encontrados aqui.
    Enjoy

    Nenhum comentário: