Quando un'applicazione viene aggiornata oppure installata per la prima volta, può aver senso mostrare all'utente un tutorial che ne spieghi in dettaglio l'utilizzo, almeno per le sue componenti principali. Il tutorial è spesso un componente statico, creato tramite immagini costruite ad-hoc per riempire tutto lo schermo e creare scenari finti, al puro scopo illustrativo. Gli scenari vengono poi cambiati facendo solitamente uno swipe verso destra o verso sinistra.
Volendo creare qualcosa di più complesso e reale, possiamo fare uso di XAML per creare le viste applicative e poi, in particolare, di un nuovo componente chiamato TeachingTip che permette di mettere in evidenza dettagli dell'applicazione per insegnare, appunto, il funzionamento di un pulsante o di una vista. L'aggiunta dell'oggetto può essere fatta direttamente tramite le Resources del componente a cui lo vogliamo assegnare (ad esempio un Button):
<Button Content="Save" x:Name="SaveButton"> <Button.Resources> <controls:TeachingTip x:Name="TeachingTip" Target="{x:Bind SaveButton}" Title="Save automatically" Subtitle="When you save your file to OneDrive, we save your changes as you go - so you never have to."> </controls:TeachingTip> </Button.Resources> </Button>
In questo caso il controllo è nascosto by default e dovrà essere attivato esplicitamente quando ne abbiamo bisogno, tramite l'impostazione della proprità IsOpen a true.
Il controllo inoltre non deve essere necessariamente piazzato associato ad un altro elemento dello XAML, ma anzi, può anche essere mostrato da solo, in una porzione dedicata della pagina:
<controls:TeachingTip x:Name="TeachingTip" Title="Saving automatically" Subtitle="We save your changes as you go - so you never have to." PreferredPlacement="BottomLeft" IsLightDismissEnabled="True"> </controls:TeachingTip>
In questo caso particolare non solo il controllo è stato piazzato in basso a destra, ma è anche stato impostato il light dismiss, ovvero la possibilità di fare la chiusura automatica del controllo qualora l'utente inizi a cliccare su altri elementi all'interno della pagina, facendogli perdere il focus.
A livello di XAML, questo controllo è come tutti gli altri che abbiamo a disposizione e ci permette, quindi, alta personalizzazione per aggiungere altri pulsanti o elementi all'interno per renderlo specifico per la nostra applicazione, come mostra l'immagine seguente:
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Supportare il sorting di dati tabellari in Blazor con QuickGrid
Assegnare un valore di default a un parametro di una lambda in C#
Garantire la provenienza e l'integrità degli artefatti prodotti su GitHub
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Utilizzare un service principal per accedere a Azure Container Registry
Disabilitare automaticamente un workflow di GitHub (parte 2)
Generare velocemente pagine CRUD in Blazor con QuickGrid
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
Implementare l'infinite scroll con QuickGrid in Blazor Server
Migrare una service connection a workload identity federation in Azure DevOps
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
Sostituire la GitHub Action di login su private registry