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
Recuperare automaticamente un utente e aggiungerlo ad un gruppo di Azure DevOps
Collegare applicazioni server e client con .NET Aspire
Aggiornare a .NET 9 su Azure App Service
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
Gestire i dati con Azure Cosmos DB Data Explorer
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Recuperare App Service cancellati su Azure
Scrivere selettori CSS più semplici ed efficienti con :is()
Generare una User Delegation SAS in .NET per Azure Blob Storage
Managed deployment strategy in Azure DevOps
Come EF 8 ha ottimizzato le query che usano il metodo Contains
Filtering sulle colonne in una QuickGrid di Blazor