Abbiamo visto come sia facile utilizzare le DirectInk API della Universal Windows Platform per implementare dei canvas virtuali con cui scrivere e disegnare tramite touch o mouse.
In un altro script abbiamo visto come sia facile esportare all'interno di una GIF i dati ISF della nostra sessione di disegno, e nello script di questa settimana vediamo quando sia altrettanto semplice ripristinarli.
Sempre grazie ad una funzionalità dell'InkPresenter è la possibilità di caricare da file una sessione di disegno precedentemente salvata, tutto ciò che dobbiamo fare è chiamare il metodo LoadAsync contenuto all'interno della proprietà StrokeContainer dell'InkPresenter.
Il codice per implementare questa funzionalità è riportato in basso:
async Task Load() { var file = await ApplicationData.Current.LocalFolder.GetFileAsync("draw.gif"); using (IRandomAccessStream stream = await file.OpenAsync(FileAccessMode.ReadWrite)) { await myInkSurface.InkPresenter.StrokeContainer.LoadAsync(stream); } }
Ovviamente, in una situazione di ripristino della superfice di disegno potrebbe tornarci utile azzerare il canvas per consentire un caricamento più pulito di una sessione precedentemente salvata. Per azzerare un canvas è sufficiente invocare il metodo Clear dello StrokeContainer come identicato qui in basso:
private void Clear() { myInkSurface.InkPresenter.StrokeContainer.Clear(); }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creare un webhook in Azure DevOps
Gestione degli stili CSS con le regole @layer
Creare una libreria CSS universale: Cards
Configurare lo startup di applicazioni server e client con .NET Aspire
Migliorare la scalabilità delle Azure Function con il Flex Consumption
Gestire i dati con Azure Cosmos DB Data Explorer
Supportare la sessione affinity di Azure App Service con Application Gateway
Ottimizzare le performance usando Span<T> e il metodo Split
Introduzione alle Container Queries
Miglioramenti nell'accessibilità con Angular CDK
Creare una libreria CSS universale: Nav menu
Change tracking e composition in Entity Framework