Partager via


InkPicture.CollectionMode, propriété

Mise à jour : November 2007

Obtient ou définit le mode de collecte qui indique si l'entrée manuscrite, le mouvement, ou les deux, sont reconnus à mesure que l'utilisateur écrit.

Espace de noms :  Microsoft.Ink
Assembly :  Microsoft.Ink (dans Microsoft.Ink.dll)

Syntaxe

'Déclaration
<BrowsableAttribute(True)> _
Public Property CollectionMode As CollectionMode
'Utilisation
Dim instance As InkPicture
Dim value As CollectionMode

value = instance.CollectionMode

instance.CollectionMode = value
[BrowsableAttribute(true)]
public CollectionMode CollectionMode { get; set; }
[BrowsableAttribute(true)]
public:
property CollectionMode CollectionMode {
    CollectionMode get ();
    void set (CollectionMode value);
}
/** @property */
/** @attribute BrowsableAttribute(true) */
public CollectionMode get_CollectionMode()
/** @property */
/** @attribute BrowsableAttribute(true) */
public  void set_CollectionMode(CollectionMode value)
public function get CollectionMode () : CollectionMode
public function set CollectionMode (value : CollectionMode)

Valeur de propriété

Type : Microsoft.Ink.CollectionMode
Une des valeurs du CollectionMode.

Notes

ms582182.alert_note(fr-fr,VS.90).gifRemarque :

Le contrôle InkPicture génère une erreur si vous essayez de modifier la propriété CollectionMode pendant la collecte d'entrée manuscrite. Pour éviter ce conflit, vérifiez la propriété CollectingInk avant de modifier la propriété CollectionMode.

Pour obtenir la liste des modes que vous pouvez utiliser, consultez l'énumération CollectionMode. Toutefois, lors de l'utilisation de la propriété CollectionMode sur un système où le Kit de développement logiciel (SDK) de Tablet PC est installé, mais pas le module de reconnaissance, le mode ne peut pas avoir la valeur GestureOnly ou InkAndGesture.

Les problèmes suivants se produisent pour chacune des valeurs de la propriété CollectionMode.

Mode InkOnly

  • Seule l'entrée manuscrite est collectée, les mouvements ne le sont pas.

  • L'intérêt d'événement Gesture a la valeur false (tous les autres intérêts d'événement restent tels quels).

Mode GestureOnly

  • Seuls les mouvements sont collectés; l'entrée manuscrite ne l'est pas. Les traits sont supprimés après avoir été envoyés au mode de reconnaissance de mouvement.

  • L'intérêt d'événement Gesture a la valeur true (tous les autres intérêts d'événement restent tels quels).

  • Le contrôle InkPicture ne déclenche pas les événements de trait et de paquet associés suivant : événements CursorDown, Stroke, NewPackets et NewInAirPackets.

  • Les événements de curseur se déclenchent.

Mode InkAndGesture

  • L'entrée manuscrite et les mouvements sont collectés.

  • Seuls les mouvements monotraits sont reconnus.

  • L'intérêt d'événement Gesture a la valeur true (tous les autres intérêts d'événement restent tels quels).

  • L'événement Gesture se déclenche en premier, vous permettant d'accepter ou d'annuler le mouvement lorsque le gestionnaire d'événements OnGesture du contrôle InkPicture est appelé. Pour annuler le mouvement, affectez la valeur true à la propriété Cancel (page pouvant être en anglais) de l'objet InkCollectorGestureEventArgs. L'annulation du mouvement force le contrôle InkPicture à collecter l'entrée manuscrite.

La modification du mode de collecte ne modifie pas l'état des mouvements individuels.

Un comportement non désiré peut se produire lorsque la propriété CollectionMode a la valeur InkAndGesture et qu'un intérêt du contrôle InkPicture dans un mouvement connu est défini (en appelant la méthode SetGestureStatus). Si vous tracez l'entrée manuscrite qui ressemble au mouvement connu et que le mouvement connu est répertorié dans la liste des propositions du module de reconnaissance, l'événement Gesture se déclenche et l'entrée manuscrite disparaît, même si le mouvement n'est pas la meilleure proposition. Pour éviter la disparition de l'entrée manuscrite lorsque vous souhaitez collecter l'entrée manuscrite plutôt que le mouvement, annulez la collecte du mouvement et affectez la valeur true à la propriété Cancel (page pouvant être en anglais) héritée de l'objet InkCollectorGestureEventArgs.

Lorsque la propriété CollectionMode a la valeur GestureOnly, le délai d'attente entre le moment où un utilisateur ajoute un mouvement et celui où l'événement Gesture se produit est une valeur fixe que vous ne pouvez pas modifier par programme. La reconnaissance de mouvement est plus rapide en mode InkAndGesture. Pour ne collecter que des mouvements et empêcher la collecte d'entrée manuscrite en mode InkAndGesture, vous pouvez :

  1. Affecter la valeur InkAndGesture à la propriété CollectionMode.

  2. Supprimer le trait dans l'événement Stroke.

  3. Traiter le mouvement dans l'événement Gesture.

  4. Affecter la valeur false à la propriété DynamicRendering pour arrêter le flux d'entrée manuscrite pendant un mouvement.

Exemples

Cet exemple C# affiche des informations sur les événements de mouvement dans la barre d'état de la fenêtre du formulaire principal. En commençant par une application générée générique, ajoutez un contrôle StatusBar (page pouvant être en anglais), statusBar1, et un contrôle InkPicture, theInkPicture au formulaire principal, ainsi que le code suivant.

[C#]

//...
using Microsoft.Ink;

namespace CollectionMode_CS
{
    public class CollectionModeForm : System.Windows.Forms.Form
    {
        // ... The generated code will be here.
        //Add this code following the implementation of Main():

        private void CollectionModeForm_Load(object sender, System.EventArgs e)
        {
            // Initialize the InkPicture object.
            theInkPicture.CollectionMode = CollectionMode.InkAndGesture;
            ClearAppGestures();

            // Turn on interest in the ChevronDown application gesture.
            theInkPicture.SetGestureStatus(ApplicationGesture.ChevronDown, true);
            theInkPicture.SetGestureStatus(ApplicationGesture.ChevronUp, true);
            theInkPicture.Gesture += new InkCollectorGestureEventHandler(theInkPicture_Gesture);
            theInkPicture.SystemGesture +=
            new InkCollectorSystemGestureEventHandler(theInkPicture_SystemGesture);
            theInkPicture.Enabled = true;
        }

        private void theInkPicture_Gesture(object sender,
            Microsoft.Ink.InkCollectorGestureEventArgs e)
        {
            Gesture theGesture = e.Gestures[0];
            statusBar1.Text = theGesture.Id.ToString();
            // Cancelling the gesture will cause the ink to remain.
            if (theGesture.Id == ApplicationGesture.ChevronDown)
            e.Cancel = true;
        }

        private void theInkPicture_SystemGesture(object sender,
            Microsoft.Ink.InkCollectorSystemGestureEventArgs e)
        {
            SystemGesture theGesture = e.Id;
            statusBar1.Text = "System: " + theGesture.ToString() +
            " " + e.Point.ToString();
        }

        // Set all of the ApplicationGestures' status
        // to false on the InkCollector object.
        private void ClearAppGestures()
        {
        ApplicationGesture test = ApplicationGesture.NoGesture;
            Array theGestures = System.Enum.GetValues(test.GetType());
            foreach (ApplicationGesture theGesture in theGestures)
            {
               theInkPicture.SetGestureStatus(theGesture, false);
            }
        }
    }
}

Cet exemple Microsoft® Visual Basic® .NET affiche des informations d'événement de mouvement dans la barre d'état de la fenêtre du formulaire principal. En commençant par une application générée générique, ajoutez un contrôle StatusBar (page pouvant être en anglais), statusBar1, et un contrôle InkPicture, theInkPicture au formulaire principal, ainsi que le code suivant.

Imports Microsoft.Ink

Public Class CollectionModeForm
    Inherits System.Windows.Forms.Form

#Region " Windows Form Designer generated code "
'This contains the standard generated form code, with
'the addition of a Status Bar, StatusBar1, and an InkPicture control, the InkPicture.
#End Region

    Private Sub CollectionModeForm_Load(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles MyBase.Load
        'Set the InkPicture to collect both ink and gestures.
        theInkPicture.CollectionMode = CollectionMode.InkAndGesture
        'Clear interest in all of the application gestures
        ClearAppGestures()
        'Set our interest in only two gestures.
        theInkPicture.SetGestureStatus(ApplicationGesture.ChevronDown, True)
        theInkPicture.SetGestureStatus(ApplicationGesture.ChevronUp, True)
        'Add the handlers for application and system gestures.
        AddHandler theInkPicture.Gesture, AddressOf theInkPicture_Gesture
        AddHandler theInkPicture.SystemGesture, AddressOf theInkPicture_SystemGesture
        theInkPicture.Enabled = True
    End Sub

    Private Sub theInkPicture_Gesture(ByVal sender As Object, _
        ByVal e As InkCollectorGestureEventArgs)
        Dim theGesture As Gesture = e.Gestures(0)
        StatusBar1.Text = theGesture.Id.ToString()
        'Cancelling the gesture will cause the ink to remain.
        If theGesture.Id = ApplicationGesture.ChevronDown Then
            e.Cancel = True
        End If
    End Sub

    Private Sub theInkPicture_SystemGesture( _
        ByVal sender As Object, _
        ByVal e As InkCollectorSystemGestureEventArgs)
        StatusBar1.Text = "System: " + e.Id.ToString() + "   " + e.Point.ToString()
    End Sub

    ' Set all of the ApplicationGestures' status
    ' to false on the InkPicture object.
    Private Sub ClearAppGestures()
        Dim test As ApplicationGesture = ApplicationGesture.NoGesture
        Dim theGestures As Array = System.Enum.GetValues(test.GetType())
        Dim theGesture As ApplicationGesture
        For Each theGesture In theGestures
            theInkPicture.SetGestureStatus(theGesture, False)
        Next
    End Sub
End Class

Plateformes

Windows Vista

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Informations de version

.NET Framework

Pris en charge dans : 3.0

Voir aussi

Référence

InkPicture, classe

Membres InkPicture

Microsoft.Ink, espace de noms

CollectionMode

InkPicture.Stroke

InkPicture.Gesture

InkPicture.CursorDown

InkPicture.NewPackets

InkPicture.NewInAirPackets

InkPicture.SetGestureStatus