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
Creare moduli CSS in React
Reactive form tipizzati con modellazione del FormBuilder in Angular
Gestire errori funzionali tramite exception in ASP.NET Core Web API
Trasformare qualsiasi backend in un servizio GraphQL con Azure API Management
Utilizzare la session affinity con Azure Container Apps
Eseguire una GroupBy per entity in Entity Framework
Gestire liste di tipi semplici con Entity Framework Core
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Effettuare il download di un file via FTP con la libreria FluentFTP di .NET
Utilizzare le collection expression in C#
Supportare il sorting di dati tabellari in Blazor con QuickGrid
Definire lo stile CSS in base alle dimensioni del container