La DirectInk platform è il nuovo set di API disponibili nella Universal Windows Platform dedicate al digital inking. A differenza delle precedenti versioni di WinRT la nuova DirectInk Platform ci permette senza troppa fatica di beneficiare della stessa inking experience che Microsoft Edge e OneNote offrono. In Windows 8.1 infatti era necessario gestire manualmente la superficie di disegno, rimanendo in ascolto di specifici eventi e renderizzando le varie "pennellate" dell'utente. Con Windows 10 le cose si semplificano, infatti per iniziare a utilizzare le feature built-in di inking della piattaforma ci basta utilizzare un unico, e nuovo, controllo XAML: l'InkCanvas.
<Page x:Class="App1.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:App1" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"> <InkCanvas x:Name="myInkSurface" /> </Page>
Una volta fatto questo, direttamente dal file di code behind possiamo impostare tutte le varie proprietà del nostro pennello tramite la classe InkDrawingAttributes e l'InkPresenter in questo modo:
public sealed partial class MainPage : Page { public MainPage() { InitializeComponent(); Loaded += ApplicationLoaded; } private void ApplicationLoaded(object sender, RoutedEventArgs e) { InkDrawingAttributes attr = new InkDrawingAttributes(); attr.Color = Colors.Crimson; attr.PenTip = PenTipShape.Circle; attr.Size = new Size(2, 6); myInkSurface.InkPresenter.InputDeviceTypes = CoreInputDeviceTypes.Mouse; myInkSurface.InkPresenter.UpdateDefaultDrawingAttributes(attr); } }
Delle impostazioni di questo tipo di permettono di ottenere un risultato del genere:

Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core
Effettuare il binding di date in Blazor
Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
Creare una custom property in GitHub
Ordine e importanza per @layer in CSS
Creare una libreria CSS universale: i bottoni
Ottimizzare le pull con Artifact Cache di Azure Container Registry
Recuperare App Service cancellati su Azure
Esporre i propri servizi applicativi con Semantic Kernel e ASP.NET Web API
Configurare il nome della run di un workflow di GitHub in base al contesto di esecuzione
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub
Definire stili a livello di libreria in Angular
I più letti di oggi
- Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
- Il nuovo tag nav in HTML5
- Nullish coalescing e decostruzione in JavaScript
- Silverlight Summer: un'estate speciale piena di Style per i controlli Silverlight!
- Microsoft Security Bulletin MS02-036
- Un documento con le novità del .NET framework 1.1