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
Utilizzare gRPC su App Service di Azure
Hosting di componenti WebAssembly in un'applicazione Blazor static
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Creazione di componenti personalizzati in React.js con Tailwind CSS
Eseguire attività basate su eventi con Azure Container Jobs
Ottimizzazione dei block template in Angular 17
Eseguire attività con Azure Container Jobs
Configurare dependabot per aggiornare le dipendenze di terze parti con GitHub Actions
Routing statico e PreRendering in una Blazor Web App
Eseguire query manipolando le liste contenute in un oggetto mappato verso una colonna JSON
Usare una container image come runner di GitHub Actions
Gestire il colore CSS con HWB