Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Usar uma barra de progresso dentro da notificação da aplicação permite-lhe transmitir ao utilizador o estado de operações de longa duração, como downloads, renderização de vídeo, objetivos de exercício e muito mais.
Uma barra de progresso dentro de uma notificação de aplicação pode ser "indeterminada" (sem valor específico, pontos animados indicam que uma operação está a ocorrer) ou "determinada" (uma percentagem específica da barra está preenchida, como 60%).
A imagem abaixo mostra uma barra de progresso determinada com todas as suas propriedades correspondentes rotuladas.
Para mais informações sobre as notificações da aplicação, consulte Visão Geral das notificações da aplicação.
| Propriedade | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| Título | string ou BindableString | falso | Obtém ou define uma cadeia de caracteres de título opcional. Suporta vinculação de dados. |
| Value | duplo ou AdaptiveProgressBarValue ou BindableProgressBarValue | falso | Obtém ou define o valor da barra de progresso. Suporta vinculação de dados. O valor padrão é 0. Pode ser um duplo entre 0.0 e 1.0, AdaptiveProgressBarValue.Indeterminate, ou new BindableProgressBarValue("myProgressValue"). |
| ValueStringOverride | string ou BindableString | falso | Obtém ou define uma cadeia de caracteres opcional a ser exibida em vez da cadeia de porcentagem padrão. Se isso não for fornecido, algo como "70%" será exibido. |
| Situação | string ou BindableString | verdadeiro | Obtém ou define uma cadeia de caracteres de status (obrigatório), que é exibida abaixo da barra de progresso à esquerda. Essa cadeia de caracteres deve refletir o status da operação, como "Baixando..." ou "Instalando..." |
Use AppNotificationBuilder.AddProgressBar para adicionar uma barra de progresso à sua notificação. O exemplo seguinte gera a notificação mostrada acima.
var builder = new AppNotificationBuilder()
.AddText("Downloading your weekly playlist...")
.AddProgressBar(new AppNotificationProgressBar()
.SetTitle("Weekly playlist")
.SetValue(0.6)
.SetValueStringOverride("15/26 songs")
.SetStatus("Downloading..."));
Para atualizar dinamicamente os valores da barra de progresso, utilize a ligação de dados conforme descrito na secção seguinte.
Atualizar a barra de progresso com vinculação de dados
Para mostrar uma barra de progresso em tempo real, use data binding para atualizar os valores das notificações sem ter de reenviar toda a notificação.
- Construa conteúdo de notificação com campos ligados aos dados, chamando os
Bindmétodos no AppNotificationProgressBar. - Atribua uma Etiqueta (e, opcionalmente, um Grupo) para identificar a notificação.
- Defina os valores iniciais do AppNotificationProgressData .
- Mostre a notificação chamando AppNotificationManager.Default.Show.
using Microsoft.Windows.AppNotifications;
using Microsoft.Windows.AppNotifications.Builder;
string tag = "weekly-playlist";
string group = "downloads";
var builder = new AppNotificationBuilder()
.AddText("Downloading your weekly playlist...")
.AddProgressBar(new AppNotificationProgressBar()
.BindTitle()
.BindValue()
.BindValueStringOverride()
.BindStatus());
var notification = builder.BuildNotification();
notification.Tag = tag;
notification.Group = group;
notification.Progress = new AppNotificationProgressData(1)
{
Title = "Weekly playlist",
Value = 0.6,
ValueStringOverride = "15/26 songs",
Status = "Downloading..."
};
AppNotificationManager.Default.Show(notification);
Depois, atualize os valores de progresso chamando AppNotificationManager.Default.UpdateAsync com uma nova instância AppNotificationProgressData . Incremente o número de sequência para que a plataforma saiba que esta é uma atualização mais recente.
using Microsoft.Windows.AppNotifications;
string tag = "weekly-playlist";
string group = "downloads";
var data = new AppNotificationProgressData(2)
{
Value = 0.7,
ValueStringOverride = "18/26 songs"
};
await AppNotificationManager.Default.UpdateAsync(data, tag, group);
Usar o UpdateAsync em vez de substituir toda a notificação garante que a notificação permanece na mesma posição no Centro de Notificações e não se move para cima ou para baixo. O método devolve um NotificationUpdateResult que indica se a atualização teve sucesso ou se a notificação não foi encontrada (o utilizador pode tê-la ignorado).
Elementos que suportam ligação de dados
Os seguintes elementos nas notificações da aplicação suportam a ligação de dados:
- Todas as propriedades no AppNotificationProgressBar
- A propriedade Text nos elementos de texto de nível superior
Atualizar ou substituir uma notificação
Pode substituir uma notificação enviando uma nova notificação com a mesma Tag e Grupo. A tabela seguinte descreve a diferença entre substituir e atualizar uma notificação.
| Substituição | Atualização | |
|---|---|---|
| Posição no Centro de Notificação | Move a notificação para o topo do Centro de Notificações. | Deixa a notificação no mesmo sítio dentro do Centro de Notificações. |
| Modificação de conteúdo | Pode alterar completamente todo o conteúdo e o layout da notificação. | Só pode alterar propriedades que suportem vinculação de dados (barra de progresso e texto do nível superior). |
| Reaparecendo como popup | Pode reaparecer como uma janela pop-up se SuppressPopup estiver false (ou estiver configurado para true para enviar discretamente ao Centro de Notificações). |
Não volta a aparecer como pop-up; os dados da notificação são atualizados silenciosamente no Centro de Notificações. |
| Utilizador dispensado | A notificação de substituição é sempre enviada, independentemente de o utilizador ter ignorado a notificação anterior. | Se o utilizador ignorou a notificação, a atualização falha. |
Em geral, atualizar é útil para informações que mudam frequentemente e não requerem a atenção imediata do utilizador, como o progresso que muda de 50% para 65%.
Depois de a sua sequência de atualizações terminar (por exemplo, um ficheiro terminou de ser descarregado), considere substituir a notificação para a etapa final porque:
- A notificação final provavelmente tem uma disposição diferente, como a remoção da barra de progresso ou a adição de novos botões.
- O utilizador pode ter ignorado a notificação de progresso, mas ainda quer ver um pop-up quando a operação terminar.
Consulte também
Windows developer