Come abbiamo già avuto modo di vedere diverse volte in passato, uno dei grandi vantaggi nell'uso delle applicazioni UWP è il pieno supporto a strumenti moderni per includere accessibilità, modelli 3D, sistemi di machine learning e così via, con estrema semplicità, al contrario di quanto avveniva in precedenza con WinForms e WPF. Non è da meno, in quest'ottica, il supporto alla penna e all'inking in generale, che ci permette di disegnare sia figure, sia testo, a mano libera.
Uno scenario interessante, quando si unisce l'inking a device importanti in stile Surface Hub o Surface Studio, si presenta quando vogliamo abilitare la possibilità di scrivere con più device di input, come penna e dita, oppure quando vogliamo scrivere in più persone (o mani) contemporaneamente. Questa modalità di lavoro non è abilitabile in maniera diretta sull'oggetto InkCanvas, ma è facile impostarla tramite il supporto di proprietà accessorie:
public MainPage()
{
this.InitializeComponent();
// Abilita il supporto a scrittura sia via penna, sia via touch
this.myCanvas.InkPresenter.InputDeviceTypes = Windows.UI.Core.CoreInputDeviceTypes.Pen | Windows.UI.Core.CoreInputDeviceTypes.Touch;
// Attiva il custom drying
this.myCanvas.InkPresenter.ActivateCustomDrying();
// Attiva il multi-input pointer
this.myCanvas.InkPresenter.SetPredefinedConfiguration(InkPresenterPredefinedConfiguration.SimpleMultiplePointer);
}Una volta creato via XAML l'InkCanvas, dobbiamo andare ad impostare i device che vogliamo utilizzare come input, ovvero penna e touch in questo caso. Successivamente, è necessario abilitare il custom drying, ovvero la modalità con cui vogliamo che l'input venga subito convertito in path XAML. Solo una volta completato questo passaggio, possiamo quindi abilitare il supporto al SimpleMultiplePointer per consentire la scrittura a più mani.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Gestire progetti NPM in .NET Aspire
Loggare le query più lente con Entity Framework
Ridurre il reflow cambiando il CSS
Disabilitare le run concorrenti di una pipeline di Azure DevOps
Gestione file Javascript in Blazor con .NET 9
Le cron expression di un workflow di GitHub
Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
Utilizzo delle stepped value functions nel CSS
Utilizzare Containers in .NET Aspire
Definire il colore di una scrollbar HTML tramite CSS
Autenticazione di git tramite Microsoft Entra ID in Azure DevOps
Scrivere selettori CSS più semplici ed efficienti con :is()
I più letti di oggi
- Esaminare documenti XML con namespace utilizzando LINQ to XML
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Effetto turnstile su tutte le pagine con il Windows Phone Toolkit
- Le DirectInk API nella Universal Windows Platform
- Gli oggetti CallOut di Expression Blend 4.0
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Sfruttare una CDN con i bundle di ASP.NET


