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
Utilizzare Copilot con Azure Cosmos DB
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Utilizzare l nesting nativo dei CSS
Utilizzare WhenEach per processare i risultati di una lista di task
Autenticazione di git tramite Microsoft Entra ID in Azure DevOps
Conoscere il rendering Server o WebAssembly a runtime in Blazor
Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
Recuperare automaticamente un utente e aggiungerlo ad un gruppo di Azure DevOps
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
Filtering sulle colonne in una QuickGrid di Blazor
Utilizzare Locust con Azure Load Testing