Com a chegada do Windows 7 vários novos recursos foram disponibilizados aos desenvolvedores.
Preview da janela,
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 Peak 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 definir 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 uma 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, 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.
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