Share via


InkCollector-Klasse

Stellt ein Objekt dar, das verwendet wird, um Freihandeingaben von verfügbaren Tablettgeräten aufzuzeichnen.

Namespace:  Microsoft.Ink
Assembly:  Microsoft.Ink (in Microsoft.Ink.dll)

Syntax

'Declaration
<UIPermissionAttribute(SecurityAction.Demand, Window := UIPermissionWindow.SafeTopLevelWindows)> _
<PermissionSetAttribute(SecurityAction.InheritanceDemand, Name := "FullTrust")> _
Public Class InkCollector _
    Implements IDisposable
'Usage
Dim instance As InkCollector
[UIPermissionAttribute(SecurityAction.Demand, Window = UIPermissionWindow.SafeTopLevelWindows)]
[PermissionSetAttribute(SecurityAction.InheritanceDemand, Name = "FullTrust")]
public class InkCollector : IDisposable
[UIPermissionAttribute(SecurityAction::Demand, Window = UIPermissionWindow::SafeTopLevelWindows)]
[PermissionSetAttribute(SecurityAction::InheritanceDemand, Name = L"FullTrust")]
public ref class InkCollector : IDisposable
/** @attribute UIPermissionAttribute(SecurityAction.Demand, Window = UIPermissionWindow.SafeTopLevelWindows) */
/** @attribute PermissionSetAttribute(SecurityAction.InheritanceDemand, Name = "FullTrust") */
public class InkCollector implements IDisposable
public class InkCollector implements IDisposable

Hinweise

Warnung

Um einen Speicherverlust zu verhindern, müssen Sie die Dispose-Methode explizit für jedes InkCollector-Objekt aufrufen, an das ein Ereignishandler angefügt wurde, bevor das Objekt den Gültigkeitsbereich verlässt.

Das InkCollector-Objekt listet nur Freihand- und Stiftbewegungseingaben auf. Der Zweck eines InkCollector-Objekts besteht ausschließlich darin, Freihandeingaben von der Hardware aufzulisten (beispielsweise mithilfe von Cursor- und Tablet-Objekten) und sie an eine Anwendung weiterzugeben. Im Wesentlichen verteilt es Freihandeingaben an eines oder mehrere verschiedene Ink-Objekte und dient dabei als Container für die Speicherung der verteilten Freihandeingaben.

Um ein InkCollector-Objekt zu verwenden, erstellen Sie es, legen das Fenster fest, das gezeichnete Freihandeingaben erfasst, und aktivieren das Objekt. Nachdem das InkCollector-Objekt aktiviert ist, kann es Freihandeingaben in einem der drei in der CollectionMode-Auflistung angegebenen Modi erfassen:

  • InkOnly, in dem das Stroke-Objekt erstellt wird.

  • GestureOnly, in dem das Gesture-Objekt erstellt wird.

  • InkAndGesture, in dem ein Strich-, ein Stiftbewegungs- oder möglicherweise auch beide Objekte erstellt werden, abhängig davon, wie die Anwendung Ereignisse behandelt.

Bei jeder Cursorbewegung innerhalb eines Bereichs eines Tabletts erfasst das InkCollector-Objekt entweder einen Strich oder eine Stiftbewegung und manchmal auch beides. Die Erkennung von Stiftbewegungen wird mithilfe der Microsoft-Stiftbewegungserkennung realisiert.

Ein InkCollector erfasst Tabletteingaben. Freihandeingaben können von allen angeschlossenen Tabletts (einschließlich der Maus) gleichzeitig erfasst werden. Änderungen an Cursor- und CursorButton-Objekten können bewirken, dass das InkCollector-Objekt ein Ereignis auslöst.

Ein InkCollector verwaltet auch eine Liste aller während seiner Existenz gefundenen Cursor. Wenn der InkCollector einen neuen Cursor findet, wird das CursorInRange-Ereignis ausgelöst, wobei die NewCursor-Eigenschaft des InkCollectorCursorInRangeEventArgs-Objekts auf true festgelegt ist. Anwendungen verwenden den InkCollector, um neue Cursor zu verwalten.

Einem bestimmten Fensterhandle kann mehr als ein InkCollector zugeordnet werden, auch wenn sich deren Erfassungsbereiche, die mithilfe des Konstruktors oder der SetWindowInputRectangle-Methode festgelegt wurden, überlappen. Dieses Szenario funktioniert jedoch nur dann, wenn jeder InkCollectorSetSingleTabletIntegratedMode aufruft und ein einzelnes Tablett verwendet. Dieses Verhalten ermöglicht es, Freihandeingaben für jedes Tablett in einem separaten Objekt zu speichern.

Ein Fehler tritt auf, wenn das Eingaberechteck für das Fenster eines aktivierten InkCollector-Objekts (was mit der Enabled-Eigenschaft festgelegt wird) das Eingaberechteck für das Fenster eines anderen aktivierten InkCollector-Objekts überlappt.

Hinweis

Überlappungen führen zu keinem Fehler, wenn jeweils nur eines der Eingaberechtecke gleichzeitig aktiviert ist.

Die Ereignisse MouseDown, MouseMove, MouseUp und MouseWheel geben die x- und y-Koordinaten in Pixeln zurück, nicht in HIMETRIC-Einheiten, die dem Freihandbereich zugeordnet sind. Die Ursache hierfür ist, dass diese Ereignisse die entsprechenden Mausereignisse von nicht freihandfähigen Anwendungen ersetzen und diese Anwendungen nur mit Pixeln umgehen können.

Das InkCollector-Objekt verhält sich in Anwendungen, die mit Microsoft Visual Basic erstellt wurden, anders als in solchen, die unter Verwendung der Microsoft Foundation Classes (MFC) erstellt wurden. Weitere Informationen über diese Unterschiede finden Sie unter Ink Collection.

Hinweis

Das InkCollector-Objekt kann in einem Thread ohne Bezug zur Benutzeroberfläche nicht sicher freigegeben werden.

Entfernen Sie ein nicht mehr benötigtes InkCollector-Objekt manuell, um die Leistung der Anwendung zu verbessern.

ms583683.alert_security(de-de,VS.90).gifSicherheitshinweis:

Bei Verwendung mit teilweiser Vertrauenswürdigkeit ist für diese Klasse und alle ihre Methoden die UIPermissionWindow.SafeTopLevelWindows-Berechtigung erforderlich. Weitere Informationen finden Sie unter Security and Trust.

Vererbungshierarchie

System.Object
  Microsoft.Ink.InkCollector

Threadsicherheit

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows Vista

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Versionsinformationen

.NET Framework

Unterstützt in: 3.0

Siehe auch

Referenz

InkCollector-Member

Microsoft.Ink-Namespace

Ink

InkOverlay

InkPicture

InkEdit

Weitere Ressourcen

Ink Collection