Sonderausgabe 2015 zu Windows 10

Band 30, Nummer 11

Dieser Artikel wurde maschinell übersetzt.

Freihandschrift – Freihandinteraktion unter Windows 10

Durch Connor Weins | Windows-2015

In diesem Artikel erläutere ich wie Sie natürliche Benutzerinteraktion heraufstufen können mithilfe der Freihandeingabe. Freihandeingaben, ähnlich wie bei einem Stift auf Papier, von der Spitze der digitalen Stift Gerät, Stift, Finger oder Maus fließen und auf dem Bildschirm gerendert wird. Um mit digitaler Tinte gestartet wurde und in Windows 10 Freihand zu erhalten, ändere ich zunächst deaktivieren Adressierung eine fundamentale Frage: Warum ist es wichtig, dass Sie von Freihandeingaben in Ihrer app zu verwenden?

Menschen haben Gedanken und Ideen über Handschrift Jahrhunderte vermittelt wurde. Trotz der Erfindung der Maus und Tastatur der Stift und Papier Ansatz spielt eine wichtige Rolle in unserem Leben – aus der Kurznotizen und Whiteboards in unserer Niederlassung, die Notebooks in unseren Schulen und Codefarben Bücher in unsere Kinder Händen.

Stift und Papier wird sofort, Freihandform und eindeutig persönlich jeder von uns, die sich ideal für Personen, die ihre Kreativität und Stimmung Ausdrücken verwendet werden. Konvertieren von Gedanken in Text- und Diagrammen in Notizen auch wird Handschrift besser denken, erinnern zu können, und lernen, eine Studie 2013 veröffentlicht, in der psychologischen Wissenschaft (bit.ly/1tKDrhv), wo Wissenschaftler aus Princeton und UCLA festgestellt, handschriftliche Notizen wesentlich besser geeignet als eingegebenen Notizen für langfristige interpretieren kann.

Mit diesen Vorteilen von Freihandeingaben über herkömmliche typisierte Tastatureingaben angenommen werden, wenn Sie die Freihandeingabe auf Geräten, die so einfach wie Stift und Papier und Umgebung vornehmen können die Leistung des Computers Vorgänge nicht in der realen Welt. Freihandeingaben Sie können leicht variieren, die Farbe und eine Darstellung der einfach wie in der realen Welt, aber dafür, einen Schritt weiter, analysieren den Inhalt und die Form von Freihandeingaben, Metadaten bereitzustellen oder Konvertieren von Freihandeingaben in anderen Inhalt wie Text, Formen oder Befehle. Dies bietet eine völlig neue Dimension Freihandeingabe, die nicht repliziert werden kann, auf Ihre alltäglichen Notizbuch ausführenden Freihandeingaben ein leistungsfähiges Tool zum Zeichnen, Notizen, Kommentieren und Interaktion in Ihrer app. Der Markt für Stift und Fingereingabe aktivierten Gerät weiterhin zu erweitern, wird die Freihandeingabe eine wichtige Methode der Interaktion für Benutzer und app-Entwickler werden.

In Windows-10 ist es Ihnen einfach, digitale Freihandeingabe in Ihre app durch die DirectInk-Plattform zu bringen. DirectInk bietet eine Reihe von umfassenden und erweiterbare Windows-Runtime (WinRT) APIs, mit denen Sie zu sammeln, rendern und Verwalten von Freihandeingaben in eine universelle Windows-Plattform-app. Mithilfe von DirectInk erhalten Sie die gleichen hervorragende Freihand- und die Leistung von Microsoft-Edge-Browser, Universal OneNote und der Handschrift-Bereich verwendet. Hier wird eine kurze Übersicht über die Features, die DirectInk Ihrer app bietet:

  • Schöne Freihandeingaben: DirectInk verwendet input Glättung Bézier Rendern Algorithmen Tinte immer sicherstellen sucht schärfer und ansprechende für Touch und Stifteingabe
  • Geringe Latenz, nicht genügend Arbeitsspeicher: DirectInk verwendet einen Hintergrundthread mit hoher Priorität input Vorhersage Freihandeingaben sichergestellt ist immer sofort und Reaktionsfähigkeit und verwalteten Ressourcen effektiv, um Ihre app Aufwand gering zu halten.
  • Einfaches und erweiterbares API-Oberfläche: DirectInk bietet APIs wie InkCanvas und InkPresenter, die Sie erfassen und Verwalten von Freihandeingaben schnellen Einstieg ermöglichen, und sie bieten erweiterte Funktionalität, die Sie umfangreiche und komplexe Funktionalität in Ihrer app erstellen kann.

Jetzt sind Sie hoffentlich begeistert, die ersten Schritte mit Freihandeingaben in Ihrer app. Ich werde nun einen Blick auf das Nutzen der DirectInk-Plattform in Ihrer app und Benutzern eine hervorragende Freihand-Erfahrung.

Erfassen von Freihandeingaben in Ihrer App

Informationen zum Einstieg mit digitaler Tinte wird der erste Schritt einer Fläche eingerichtet, Eingabe erfasst und als Freihandeingaben gerendert werden kann. In Windows 8.1 Store-apps war das Onlineschalten der Freihandeingabe in Ihre app einen erweiterten Prozess, der war die Erstellung einer Canvas, um Eingabeereignisse, und erstellen und Rendern von Strichen Stück für Stück mit Ihren eigenen Code zum Rendern der Überwachung. Für eine allgemeine Windows-app ist Anfang zum Erfassen von Freihandeingaben so einfach wie ein InkCanvas-Steuerelement in Ihrer Anwendung ablegen:

<Grid>
  <InkCanvas x:Name="myInkCanvas"/>
</Grid>

Wie Sie sehen Abbildung 1, diese einzelne Codezeile können Sie einen transparenten Überlagerung, die Stifteingabe sammeln und das Rendering, die als einem schwarzen Kugelschreiber Eingabe beginnt. Der Stift-Schaltfläche "Radierer" löscht auch alle erfassten Freihandeingaben, die es in Kontakt stehen geht. Obwohl dies hervorragend für erste Schritte mit Freihandeingabe ist, was geschieht, wenn möchten Sie ändern wie Freihandeingaben erfasst oder angezeigt wird?

Verwenden zum Erfassen von Freihandeingaben mit einem schwarzen Kugelschreiber InkCanvas
Abbildung 1: Verwendung von InkCanvas zum Erfassen von Freihandeingaben mit einem schwarzen Kugelschreiber

Über InkCanvas können Sie Ihre InkPresenter zugreifen, die Funktionalität zum Steuern der Darstellung und Eingabekonfiguration Tinte verfügbar macht. Bietet eine optimale bedienen Freihandeingabe Stifteingabe stammen nicht viele Systeme ausgestattet mit einem Stift. Die InkPresenter sehen, die Sie erfassen von Freihandeingaben für eine beliebige Kombination von Stift, Fingereingabe und Mauseingabe und input-Typen, die nicht ausgewählt werden einfach als Zeiger Ereignisse der InkCanvas-XAML-Element gesendet. Durch das InkPresenter können Sie auch standardmäßig Zeichnungsattributen von Freihandeingaben auf InkCanvas, sodass Sie die Pinselgröße und Farbe ändern gesammelten verwalten. Als Beispiel für diese Funktionen könnten Ihre app Ihre InkCanvas zum Erfassen von Freihandeingaben, Stift, Fingereingabe und Maus Eingabe-und einem Kalligrafiepinsel emulieren, indem Sie wie folgt konfigurieren:

InkPresenter myPresenter = myInkCanvas.InkPresenter;
myPresenter.InputDeviceTypes = Windows.UI.Core.CoreInputDeviceTypes.Pen |
                               Windows.UI.Core.CoreInputDeviceTypes.Touch |
                               Windows.UI.Core.CoreInputDeviceTypes.Mouse;
InkDrawingAttributes myAttributes = myPresenter.CopyDefaultDrawingAttributes();
myAttributes.Color = Windows.UI.Colors.Crimson;
myAttributes.PenTip = PenTipShape.Rectangle;
myAttributes.PenTipTransform =
  System.Numerics.Matrix3x2.CreateRotation((float) Math.PI/4);
myAttributes.Size = new Size(2,6);
myPresenter.UpdateDefaultDrawingAttributes(myAttributes);

Erzeugt, die das Ergebnis sehen Sie Abbildung 2.

Emuliert ein mithilfe der InkPresenter DrawingAttributes Kalligrafiepinsel
Abbildung 2 emuliert eine Kalligrafie Pinsel mit dem InkPresenter DrawingAttributes

DirectInk unterstützt viele weitere, integrierte Konfigurationen für die Eingabe und Rendern von Freihandeingaben ermöglicht Freihandeingaben als Textmarker zu rendern, erhalten ein Ereignis, wenn Sie ein Strich gesammelt werden, differenzierte Eingabeereignisse zugreifen und mit mehreren Zeigern in erweiterten Konfigurationen für Freihandeingaben verwendet wird.

Bearbeiten, speichern und Laden von Freihandeingaben

Also nun, da Sie einige Freihandeingaben gesammelt haben, können Sie dabei vorgehen? Benutzer möchten häufig die Möglichkeit, löschen oder bearbeiten die Freihandeingabe, die sie gesammelt oder speichern die Freihandeingabe später zugreifen. Um diese Erfahrung für Benutzer bereitzustellen, müssen Sie zum Zugreifen auf und ändern die Freihanddaten für die Striche, die DirectInk auf dem Bildschirm gerendert hat.

Wenn auf Ihrem InkCanvas Freihandeingaben erfasst werden, werden Sie von DirectInk innerhalb einer InkStrokeCollection im InkPresenter gespeichert. Diese InkStrokeCollection enthält WinRT-Objekte, die für die Striche derzeit auf der Leinwand und auf diesen Container von der Anwendung geändert werden, sie müssen auch werden auf dem Bildschirm gerendert. Dadurch können Sie programmgesteuert hinzufügen, entfernen oder Ändern von Strichen und ermöglicht DirectInk, informieren Sie regelmäßig über alle Änderungen, die die Striche auf dem Bildschirm erleichtert. Werfen Sie einen Blick auf einige der häufig Benutzer Aktivitäten, die Sie implementieren können, verwenden die Verbindung zwischen der InkPresenter und seine InkStrokeContainer.

Medium InkCanvas unterstützt, zwar löschen, die mit dem Stift Schaltfläche "Radierer" standardmäßig erfordert einige Konfiguration in den InkPresenter zum Löschen von Freihandeingaben für Maus und Fingereingabe. DirectInk bietet integrierten Unterstützung für das Löschen von Freihandeingaben für die unterstützten Eingaben über die Mode-Eigenschaft in der InputProcessingConfiguration. Hier ist ein Beispiel für eine Schaltfläche, die den Medium wird:

private void Eraser_Click(object sender,
  RoutedEventArgs e)
{
  myInkCanvas.InkPresenter.
    InputProcessingConfiguration.Mode =
    InkInputProcessingMode.Erasing;
}

Wenn diese Taste gedrückt wird, werden alle eingegebenen DirectInk InkCanvas erfasst als Radierer behandelt werden. Wenn die Eingabe des Benutzers mit einem Strich überschneidet, nachdem dieser Modus festgelegt ist, diesen Strich aus dem InkPresenter InkStrokeContainer gelöscht und vom Bildschirm entfernt. Bei der Verwendung eines Stifts in Freihand-Modus wird die Schaltfläche "Radierer" immer als Löschmodus behandelt werden.

Auswahl DirectInk keine Unterstützung für integrierte Auswahl zu diesem Zeitpunkt leider bietet es eine Möglichkeit, es selbst durch die Eingabe nicht verarbeitete Ereignisse zu entwickeln. Nicht verarbeitete Ereignisse werden immer dann ausgelöst, wenn die DirectInk Eingabe erhält, die sie hören, aber nicht zum Rendern von Freihandeingaben aufgefordert wurde. Dies kann durch Festlegen der DirectInk Verarbeitungsmodus Konfiguration auf "None" für jede Eingabe durchgeführt werden, und kann auch konfiguriert werden, um nur die rechte Maustaste und Stift Schaft mithilfe der Eigenschaft RightDragAction geschehen:

myInkCanvas.InkPresenter.InputProcessingConfiguration.RightDragAction =
  InkInputRightDragAction.LeaveUnprocessed;

Beispielsweise Abbildung 3 zeigt, wie Sie unverarbeitete Eingabeereignisse Lasso Auswahl vornehmen (siehe Abbildung 4) Striche auf dem Bildschirm auswählen.

Abbildung 3 Verwenden von nicht verarbeiteten Eingabeereignisse Lasso Auswahl vornehmen.

...
myInkCanvas.InkPresenter.UnprocessedInput.PointerPressed += StartLasso;
myInkCanvas.InkPresenter.UnprocessedInput.PointerMoved += ContinueLasso;
myInkCanvas.InkPresenter.UnprocessedInput.PointerReleased += CompleteLasso;
...
private void StartLasso(
  InkUnprocessedInput sender,Windows.UI.Core.PointerEventArgs args)
{
  selectionLasso = new Polyline()
  {
    Stroke = new SolidColorBrush(Windows.UI.Colors.Black),
    StrokeThickness = 2,
    StrokeDashArray = new DoubleCollection() { 7, 3},
  };
  selectionLasso.Points.Add(args.CurrentPoint.RawPosition);
  AddSelectionLassoToVisualTree();
}
private void ContinueLasso(
  InkUnprocessedInput sender, Windows.UI.Core.PointerEventArgs args)
{
  selectionLasso.Points.Add(args.CurrentPoint.RawPosition);
}
private void CompleteLasso(
  InkUnprocessedInput sender, Windows.UI.Core.PointerEventArgs args)
{
  selectionLasso.Points.Add(args.CurrentPoint.RawPosition);
  bounds =
    myInkCanvas.InkPresenter.StrokeContainer.SelectWithPolyLine(
    selectionLasso.Points);
  DrawBoundingRect(bounds);
}

Striche mit einem Lasso auswählen
Abbildung 4: Auswählen von Strichen mit einem Lasso

Nachdem Sie Striche ausgewählt haben, können Sie die InkStrokeContainer.MoveSelected-Methode verwenden, um die Striche zu übersetzen, oder verwenden Sie die InkStroke.PointTransform-Eigenschaft, um eine affine Transformation auf die Striche anzuwenden. Wenn eine Kontur oder eine Reihe von Strichen, die von der InkStrokeContainer verwaltet, die auf diese Weise transformiert wird, wird DirectInk diese Änderungen übernehmen und auf dem Bildschirm gerendert werden.

Speichern und Laden von DirectInk systemeigene Unterstützung für Freihandeingaben speichern und Laden über das Format ISF (Ink Serialized), die Freihandeingaben in einem Vektorformat speichert ganz einfach für gemeinsame Nutzung und bearbeiten. Dies ist über die InkStrokeContainer SaveAsync und LoadAsync-Funktionen zugegriffen werden kann.

SaveAsync übernimmt die Stroke-Daten, die derzeit in der InkStrokeContainer gespeichert und als GIF-Datei mit eingebetteten ISF-Daten gespeichert. Abbildung 5 wird gezeigt, wie Freihandeingaben aus Ihrer InkStrokeContainer zu speichern.

Abbildung 5: Speichern von Freihandeingaben aus InkStrokeContainer

var savePicker = new FileSavePicker();
savePicker.SuggestedStartLocation =
  Windows.Storage.Pickers.PickerLocationId.PicturesLibrary;
savePicker.FileTypeChoices.Add("Gif with embedded ISF",
  new System.Collections.Generic.List<string> { ".gif" });
StorageFile file = await savePicker.PickSaveFileAsync();
if (null != file)
{
  try
  {
    using (IRandomAccessStream stream =
      await file.OpenAsync(FileAccessMode.ReadWrite))
    {
      await myInkCanvas.InkPresenter.StrokeContainer.SaveAsync(stream);
    } 
  }
  catch (Exception ex)
  {
    GenerateErrorMessage();
  }
}

LoadAsync führt die entgegengesetzte-Funktion, Striche bereits in Ihrer InkStrokeContainer löschen und einen neuen Satz von Strichen aus einer ISF oder GIF-Datei mit eingebetteten ISF-Daten geladen. Nachdem die Striche in der InkStrokeContainer geladen werden, werden DirectInk Sie automatisch auf dem Bildschirm gerendert.

Erweiterte Funktionalität Freihandeingabe

Die Fähigkeit von Freihandeingaben auf dem Bildschirm zu bearbeiten ist wichtig für die Entwicklung von Benutzerinteraktionen mit Freihandeingaben genug, um alle Ihre Bedürfnisse möglicherweise nicht. Je mehr kreative Aktivitäten Ihrer app unterstützt werden sollen, desto Ihrer app müssen den Standardsatz von Interaktionen verlassen DirectInk bietet. Befassen wir uns auf ein paar DirectInk Ihnen umfassende und differenzierte Freihandfunktionen ermöglicht, erstellen:

Freihandeingabe Recognition Freihand ist mehr als nur die Pixel auf dem Bildschirm. Als Bild, Diagramm, Form oder Text kann ein Benutzer Freihandeingaben interpretiert werden. Den Inhalt von Freihandeingaben des Benutzers zu erkennen, können Sie die Bedeutung die Freihandeingabe zuordnen oder den Austausch von Freihandeingaben mit dem Inhalt, den es darstellt. Z. B. wenn ein Benutzer Text in einer app Notizen schreiben ist, kann Ihre app erkennen den Text die Freihandeingabe darstellt, und verwenden die Textdaten für Suchergebnisse generiert werden, wenn der Benutzer eine Abfrage in eine Suchleiste eingibt. Erkennung von Text auf diese Weise wird durch die InkRecognizerContainer mit Strom versorgt. Abbildung 6 wird gezeigt, wie die InkRecognizerContainer Freihandeingaben als vereinfachte chinesische Zeichen zu interpretieren.

Abbildung 6: Interpretieren von Freihandeingaben als vereinfachte chinesische Zeichen mit der InkRecognizerContainer

async void OnRecognizeAsync(object sender, RoutedEventArgs e)
{
  InkRecognizerContainer recoContainer = new InkRecognizerContainer();
  IReadOnlyList<InkRecognizer> installedRecognizers =
    recoContainer.GetRecognizers();
  foreach (InkRecognizer recognizer in installedRecognizers)
  {
    if (recognizer.Name.Equals("Microsoft 中文(简体)手写识别器"))
    {
      recoContainer.SetDefaultRecognizer(recognizer);
      break;
    }
  }
  var results = await recoContainer.RecognizeAsync(
    myInkCanvas.InkPresenter.StrokeContainer,InkRecognitionTarget.All);
  if (results.Count > 0)
  {
    string str = "Result:";
    foreach (var r in results)
    {
      str += " " + r.GetTextCandidates()[0];
    }
  }
}

Während dies Sie Freihand als Text erkennen kann, muss die InkRecognizerContainer eine Einschränkung, da es derzeit Erkennung Text aus nur 33 unterschiedliche Language Packs unterstützt. Wenn Sie beispielsweise Text aus einer anderen Sprache erkennen oder Symbole, Formen oder andere abstrakten Freihandeingaben Interpretationen erkannt, müssten Sie diese Logik von Grund auf neu zu erstellen. Glücklicherweise bietet das InkStroke-Objekt die GetInkPoints-Funktion, die Ihnen ermöglicht, erhalten das X / y-Position der einzelnen Eingabe Punkte verwendet werden, um den Strich zu erstellen. Von dort können Sie einen Algorithmus zum Analysieren der Eingabe Punkte eines Strichs oder einer Gruppe von Strichen und interpretieren können Sie die gewünschten erstellen – als Symbole dargestellt, Formen, Befehle oder nichts Ihre Phantasie können Sie sich vorstellen.

Unabhängige Input DirectInk ist ein leistungsfähiges Modul für das Rendern von Freihandeingaben, die unter einem einfachen Satz von Regeln für die Eingabe ausgeführt wird – entweder für einen bestimmten Strich rendern oder nicht. Um diese Entscheidung zu treffen, überprüft er die unterstützten Eingabetypen als auch für die Eingabe, die Verarbeitung der Konfiguration für den Modus "und" rechts Drag-Aktion-Konfiguration. Dadurch verfügt nicht über einen Großteil der Kontext, der Ihre app für Freihandeingabe bereitstellen möchten, die app möglicherweise nicht zu, dass in bestimmte Bereiche der Leinwand Freihandeingabe oder möglicherweise eine Bewegung, in denen Freihandeingabe beendet werden soll, nachdem die Bewegung erkannt wird. Um Ihnen die Möglichkeit zu entscheiden, wie folgt bietet DirectInk Zugriff auf die Eingabe vor dem Start der Verarbeitung durch die unabhängige Eingabeereignisse. Diese Ereignisse ermöglichen es Ihnen, die Eingabe zu überprüfen, bevor DirectInk, gerendert hat, sodass, wenn in einem Bereich, in dem Freihandeingabe zulässig ist, oder ein Ereignis, das eine Aktion abgeschlossen ist, erhalten Sie ein gedrückten Ereignis Sie suchen für Sie einfach das Ereignis als Handled markieren können.

Wenn das Ereignis als Handled gekennzeichnet ist, DirectInk wird beenden Verarbeitung des Strichs oder war ein Strich bereits in Bearbeitung, wird er abgebrochen und vom Bildschirm entfernt. Sie müssen diese Ereignisse jedoch mit vorsichtig sein. Da sie im Hintergrundthread DirectInk nicht für den UI-Thread auftreten, führen Sie Verarbeitungsvorgänge starker in das Ereignis oder warten auf Aktivitäten, die in einem Thread langsamer ausgeführt wird, wie z. B. der UI-Thread Lag einführen kann, die die Reaktionsfähigkeit Tinte wirkt sich auf.

Benutzerdefinierte trockenen eines der komplexesten Features des DirectInk ist der benutzerdefinierte Trocknen Modus, der ermöglichen Ihrer app zu rendern und Verwalten von abgeschlossenen "dry" Freihand Striche auf Ihren eigenen DirectX-Oberfläche und erlauben DirectInk leistungsfähig Rendering über den Fortschritt zu behandeln oder "wet" Freihand Striche. Trocknen Standardmodus des DirectInk in den meisten Szenarios zurückgreifen kann, die Sie in Ihrer Anwendung aktivieren möchten, müssen einige Szenarios Freihandeingaben unabhängig zu verwalten:

  • Interleaving Freihand- und nicht Freihand-Inhalte (Text, Formen) Beibehaltung der Z-Reihenfolge
  • Leistungsstarke Schwenken und Zoomen auf einer großen Freihandeingabe-Canvas mit einer großen Anzahl von Freihandstrichen
  • Damit es synchron Freihandeingaben in eine DirectX-Objekt, z. B. eine gerade Linie oder Form

In Windows-10 unterstützt benutzerdefinierte Trocknen Modus Synchronisierung mit einem SurfaceImageSource (SIS) oder "virtualsurfaceimagesource" (VSIS). SIS und VSIS bieten eine freigegebene DirectX-Oberfläche für Ihre app zu zeichnen und zu erstellen, obwohl VSIS virtuelle Oberfläche bereitstellt, die größer als der Bildschirm für leistungsstarke Schwenken und zoomen. Da visuelle Updates auf diese Oberflächen an den XAML-UI-Thread beim Rendern von Freihandeingaben auf einem SIS oder VSIS synchronisiert werden kann es von der wet DirectInk-Ebene gleichzeitig entfernt werden. Benutzerdefinierte Drying Trocknen Freihandeingaben auf einem SwapChainPanel unterstützt auch Synchronisierung wird nicht gewährleistet. Da SwapChainPanel nicht mit dem UI-Thread synchron, ist es, eine geringfügige Überlappung zwischen, wenn Freihandeingaben gerendert wird, um Ihre SwapChainPanel und beim Entfernen von Freihandeingaben aus der DirectInk nassen Freihand-Ebene.

Benutzerdefinierte Trocknen aktivieren, erhalten Sie eine präzisere Kontrolle über viele Funktionen, die DirectInk bietet standardmäßig zum Erstellen von Logik wie Freihandeingaben gerendert, und in die Oberfläche des trockenen gelöscht und zu bestimmen, wie der Strich Freihanddaten von der Anwendung verwaltet werden. Damit Sie diese Funktionalität erstellen können, stehen viele Komponenten DirectInk als eigenständige Objekte Ihrer app zu unterstützen, die Lücken auszufüllen. Wenn benutzerdefinierte Trocknen aktiviert ist, bietet DirectInk ein InkSynchronizer-Objekt, dem Sie beginnen und enden Trocknungsprozesses, damit Freihandeingaben aus der DirectInk Ebene nassen synchron mit entfernt wird, wenn Sie Ihre benutzerdefinierten trockenen Ebene hinzufügen kann. DirectInk Standard trockener Tinte Renderinglogik ist auch über InkD2DRender, um sicherzustellen, dass Ihre Darstellung der Freihandeingaben konsistent zwischen den Schichten nassen und trocken ist verfügbar. Zum Löschen können Sie die Eingabe nicht verarbeitete Ereignisse löschen Logik wie im früheren Beispiel zu erstellen.

Weitere Informationen und Beispiele für die Verwendung benutzerdefinierter Trocknen, sehen Sie sich die ComplexInk-Beispiels auf GitHub unter bit.ly/1NkRjt7.

Fangen Sie mit Freihandeingaben

Mit, was Sie gelernt haben bisher zu den InkCanvas InkPresenter und InkStrokeContainer, Sie können jetzt erfassen Freihandeingaben für verschiedene Arten von Eingaben anpassen, wie auf dem Bildschirm Strich Datenzugriff angezeigte und haben Ihre Änderungen an den Strichdaten in die Freihandstriche gerendert werden, indem DirectInk wiedergegeben. Mit dieser einfachen Maß an Funktionalität können Sie eine Vielzahl von Benutzerinteraktionen aus einfachen doodling, um weitere Szenarios ausgerichteten Features wie z. B. Notizen und Sammeln von einer Signatur erstellen. Sie können auch die Tools zum Erstellen von komplexer Interaktionen über InkRecognizerContainer, unabhängige Eingabeereignisse und benutzerdefinierte Trocknen Modus.

Mit diesen Tools zur Verfügung sollte Ihre Anwendung alle Vorteile nutzen, die Freihandeingaben bereitstellen können, um eine hervorragende Freihand-Erfahrung für Benutzer zu geben. Wie die Anzahl der Stift und Fingereingabe aktivierten Geräte zunimmt weiterhin, werden bietet eine hervorragende Freihand-Erfahrung für Ihre Kunden zur Zufriedenheit und app-Differenzierung Benutzer sogar noch wichtiger. Hoffentlich können Sie etwas dauern, denken über die Funktionsweise digitaler Freihandeingabe in Ihrer app arbeiten können und DirectInk auszuprobieren.

Ein letzter Hinweis Freihandeingabe weiterhin wichtige Bereiche Investition für Microsoft und einer der größten Schlüssel zu verbessern und Erweitern der DirectInk-Plattform für zukünftige Versionen Feedback der Entwickler-Community ist. Wenn Sie beim Entwickeln mit DirectInk Fragen, Kommentare oder Vorschläge haben, senden Sie diese bitte an DirectInk@microsoft.com.


Connor Weinsarbeitet als Programmmanager arbeiten auf dem Stift Tablettstift und Freihandeingabe Team in der Gruppe der Windows-Ökosystem Entwicklerplattform. Sie erreichen ihn unter conwei@microsoft.com.

Dank den folgenden technischen Experten von Microsoft für die Überprüfung dieses Artikels: Krishnan Menon und Xiaohui Tu
Krishnan Menon ist leitender Softwareentwickler im Windows Core Eingabe Platform-Team. In Windows-10 arbeitete er Entwurf und Entwicklung der Plattform DirectInk und universelle Windows-APIs für Stift- und Freihandeingabe.

Xiaohui Tu ist principal Softwareentwicklung im Team Windows Core Eingabe-Plattform. Für Windows-10 seit er arbeitet universelle Windows-Plattform-APIs für Stift- und Freihandeingabe liefern. Er wurde mit Microsoft seit 2004 und war von Anfang an von Win32-Freihand-Plattform, Freihand-Plattform von Windows Presentation Foundation (WPF), Windows 7 und 8 Multitouch-Plattform und IE 11 Zeiger Eingabe und hohe DPI-Unterstützung.