Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

TextPointer classe

 

Date de publication : novembre 2016

Représente une position dans un FlowDocument ou TextBlock.

Espace de noms:   System.Windows.Documents
Assembly:  PresentationFramework (dans PresentationFramework.dll)

System.Object
  System.Windows.Documents.ContentPosition
    System.Windows.Documents.TextPointer

public class TextPointer : ContentPosition

NomDescription
System_CAPS_pubpropertyDocumentEnd

Obtient un TextPointer à la fin du contenu dans le conteneur de texte associé à la position actuelle.

System_CAPS_pubpropertyDocumentStart

Obtient un TextPointer au début du contenu dans le conteneur de texte associé à la position actuelle.

System_CAPS_pubpropertyHasValidLayout

Obtient une valeur qui indique si le conteneur de texte associé à la position actuelle a une disposition valide (mis à jour).

System_CAPS_pubpropertyIsAtInsertionPosition

Obtient une valeur qui indique si la position actuelle est une position d’insertion.

System_CAPS_pubpropertyIsAtLineStartPosition

Obtient une valeur qui indique si la position actuelle est au début d’une ligne.

System_CAPS_pubpropertyLogicalDirection

Obtient la direction logique associée à la position actuelle, qui est utilisée pour lever l’ambiguïté du contenu associé à la position actuelle.

System_CAPS_pubpropertyParagraph

Obtient le paragraphe portant sur la position actuelle, le cas échéant.

System_CAPS_pubpropertyParent

Obtient le parent logique portant sur la position actuelle.

NomDescription
System_CAPS_pubmethodCompareTo(TextPointer)

Effectue une comparaison ordinale entre les positions spécifiées par l’actuel TextPointer et une seconde spécifié TextPointer.

System_CAPS_pubmethodDeleteTextInRun(Int32)

Supprime le nombre spécifié de caractères à partir de la position indiquée par l’actuel TextPointer.

System_CAPS_pubmethodEquals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.(Hérité de Object.)

System_CAPS_protmethodFinalize()

Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)

System_CAPS_pubmethodGetAdjacentElement(LogicalDirection)

Retourne l’élément, s’il en est, qui limite actuel TextPointer dans la direction logique spécifiée.

System_CAPS_pubmethodGetCharacterRect(LogicalDirection)

Retourne un rectangle englobant (Rect) pour le contenu actuel de bordure TextPointer dans la direction logique spécifiée.

System_CAPS_pubmethodGetHashCode()

Fait office de fonction de hachage par défaut.(Hérité de Object.)

System_CAPS_pubmethodGetInsertionPosition(LogicalDirection)

Retourne un TextPointer à la position d’insertion le plus proche dans la direction logique spécifiée.

System_CAPS_pubmethodGetLineStartPosition(Int32)

Retourne un TextPointer au début d’une ligne spécifiée par rapport à l’actuel TextPointer.

System_CAPS_pubmethodGetLineStartPosition(Int32, Int32)

Retourne un TextPointer au début d’une ligne spécifiée par rapport à l’actuel TextPointer, et signale le nombre de lignes ont été ignoré.

System_CAPS_pubmethodGetNextContextPosition(LogicalDirection)

Retourne un pointeur vers le prochain symbole dans la direction logique spécifiée.

System_CAPS_pubmethodGetNextInsertionPosition(LogicalDirection)

Retourne un TextPointer à la prochaine position d’insertion dans la direction logique spécifiée.

System_CAPS_pubmethodGetOffsetToPosition(TextPointer)

Retourne le nombre de symboles entre actuel TextPointer et une seconde spécifié TextPointer.

System_CAPS_pubmethodGetPointerContext(LogicalDirection)

Renvoie un indicateur de catégorie pour le contenu adjacent au cours TextPointer dans la direction logique spécifiée.

System_CAPS_pubmethodGetPositionAtOffset(Int32)

Retourne un TextPointer à la position indiquée par l’offset spécifié, dans les symboles, à partir du début de l’utilisateur actuel TextPointer.

System_CAPS_pubmethodGetPositionAtOffset(Int32, LogicalDirection)

Retourne un TextPointer à la position indiquée par l’offset spécifié, dans les symboles, à partir du début de l’utilisateur actuel TextPointer et dans la direction spécifiée.

System_CAPS_pubmethodGetTextInRun(LogicalDirection)

Retourne une chaîne contenant tout texte adjacent actuel TextPointer dans la direction logique spécifiée.

System_CAPS_pubmethodGetTextInRun(LogicalDirection, Char[], Int32, Int32)

Copie le nombre maximal spécifié de caractères à partir de tout texte adjacent dans la direction spécifiée dans un tableau de caractères fourni par l’appelant.

System_CAPS_pubmethodGetTextRunLength(LogicalDirection)

Retourne le nombre de caractères Unicode entre actuel TextPointer et le prochain symbole de non-texte, dans la direction logique spécifiée.

System_CAPS_pubmethodGetType()

Obtient le Type de l'instance actuelle.(Hérité de Object.)

System_CAPS_pubmethodInsertLineBreak()

Insère un saut de ligne à la position actuelle.

System_CAPS_pubmethodInsertParagraphBreak()

Insère un saut de paragraphe à la position actuelle.

System_CAPS_pubmethodInsertTextInRun(String)

Insère le texte spécifié dans le texte Run à la position actuelle.

System_CAPS_pubmethodIsInSameDocument(TextPointer)

Indique si la position spécifiée est dans le même conteneur de texte que la position actuelle.

System_CAPS_protmethodMemberwiseClone()

Crée une copie superficielle du Object actuel.(Hérité de Object.)

System_CAPS_pubmethodToString()

Ce type ou membre prend en charge la Windows Presentation Foundation (WPF) infrastructure et n’est pas destinée à être utilisée directement à partir de votre code.(Remplace Object.ToString().)

La TextPointer classe introduit la terminologie suivante :

  • Position fondamentale - un TextPointer pointe toujours vers un position dans le contenu. De telles positions tombent entre les caractères du contenu, ou entre les flux de contenu d’élément de balises qui définissent la structure du contenu.

  • Position actuelle – comme un TextPointer indique toujours une position et étant donné que beaucoup des opérations pouvant être effectuées via un TextPointer sont par rapport à la position actuellement pointée par le TextPointer, il est judicieux de simplement faire référence à la position indiquée par un TextPointer comme le position actuelle.

  • Position d’insertion - une d’insertion est une position où le nouveau contenu peut être ajouté sans violer de règles sémantiques concernant le contenu associé. Dans la pratique, une position d’insertion est n’importe où dans le contenu où un point d’insertion peut être positionné. Un exemple de valide TextPointer position qui n’est pas une position d’insertion est la position entre deux adjacents Paragraph balises (autrement dit, entre la balise de fermeture du paragraphe précédent et de la balise d’ouverture du paragraphe suivant).

  • Symbole - pour les besoins de TextPointer les opérations qui impliquent des symboles, des éléments suivants est considéré comme un symbole:

    • Une ouverture ou une balise de fermeture d’un TextElement élément.

    • Un UIElement élément contenu dans un InlineUIContainer ou BlockUIContainer. Notez que ce un UIElement compte toujours comme unique symbole ; contenu supplémentaire ni d’éléments contenus dans le UIElement ne sont pas comptés comme des symboles.

    • Chaque 16 bits Unicode caractère à l’intérieur d’un texte Run élément.

  • Conteneur de texte - A conteneur de texte est l’élément qui forme la bordure ultime pour le flux du contenu traité ; la position indiquée par un TextPointer tombe toujours dans un conteneur de texte. Actuellement, un conteneur de texte doit être un FlowDocument ou un TextBlock. En règle générale, les opérations entre TextPointer instances dans différents conteneurs de texte ne sont pas pris en charge.

  • Document - le contenu dans un conteneur de texte est appelé un document, comme dans le IsInSameDocument (méthode) et le DocumentStart et DocumentEnd Propriétés.

La TextPointer classe est destinée à faciliter le parcours et les manipulations de contenu représenté par Windows Presentation Foundation (WPF) des éléments de contenu de flux, en général, de tels éléments dérivent TextElement. Certaines opérations qui TextPointer facilite incluent les éléments suivants :

  • Effectuer une comparaison ordinale de la position actuelle à une seconde position spécifiée. Consultez le CompareTo (méthode).

  • Déterminez le type de contenu adjacent à la position actuelle dans une direction spécifiée. Consultez le GetPointerContext (méthode) et TextPointerContext (énumération).

  • Obtenir le TextElement portant sur ou adjacent à la position actuelle. Consultez Paragraph et GetAdjacentElement (méthode).

  • Obtenir le conteneur de texte portant sur le document actif. Voir la propriété Parent.

  • Obtenir un nombre spécifié de caractères précédant ou suivant la position actuelle. Consultez le GetTextInRun (méthode).

  • Insérer une chaîne de caractères à la position actuelle. Consultez le InsertTextInRun (méthode).

  • Trouver les limites de ligne dans le contenu. Consultez le GetLineStartPosition méthode et IsAtLineStartPosition propriété.

  • Conversion entre TextPointer positions et le symbole offsets dans le contenu. Consultez le GetOffsetToPosition et GetPositionAtOffset méthodes.

  • Exécuter des tests de positionnement visuels en traduisant entre une TextPointer position et un Point représentant des coordonnées relatives.

  • Rechercher une position d’insertion proche, ou vérifier si la position actuelle est une position d’insertion. Consultez le GetInsertionPosition et GetNextInsertionPosition méthodes et IsAtInsertionPosition propriété.

La position et LogicalDirection indiqué par une TextPointer objet sont immuables. Lorsque le contenu est modifié ou modifié, la position indiquée par un TextPointer ne change pas par rapport au texte environnant ; plutôt l’offset de cette position à partir du début du contenu est ajusté en conséquence pour refléter la nouvelle position relative dans le contenu. Par exemple, un TextPointer qui indique une position au début d’un paragraphe donné continue à pointer vers le début de ce paragraphe même lorsque le contenu est inséré ou supprimé avant ou après le paragraphe.

La TextPointer classe ne fournit pas de constructeurs publics. Une instance de TextPointer est créé à l’aide des propriétés ou méthodes d’autres objets (y compris d’autres TextPointer objets). La liste suivante fournit quelques exemples de méthodes et propriétés qui créent et renvoient un TextPointer. Cette liste n’est pas exhaustive :

L’exemple suivant montre comment utiliser un TextPointer pour rechercher une position dans le premier Run élément dans un conteneur de texte spécifié.

// This method returns the position just inside of the first text Run (if any) in a 
// specified text container.
TextPointer FindFirstRunInTextContainer(DependencyObject container)
{
    TextPointer position = null;

    if (container != null){
        if (container is FlowDocument)
            position = ((FlowDocument)container).ContentStart;
        else if (container is TextBlock)
            position = ((TextBlock)container).ContentStart;
        else
            return position;
    }
    // Traverse content in forward direction until the position is immediately after the opening 
    // tag of a Run element, or the end of content is encountered.
    while (position != null)
    {
        // Is the current position just after an opening element tag?
        if (position.GetPointerContext(LogicalDirection.Backward) == TextPointerContext.ElementStart)
        {
            // If so, is the tag a Run?
            if (position.Parent is Run)
                break;
        }

        // Not what we're looking for; on to the next position.
        position = position.GetNextContextPosition(LogicalDirection.Forward);
    }

    // This will be either null if no Run is found, or a position just inside of the first Run element in the
    // specifed text container.  Because position is formed from ContentStart, it will have a logical direction
    // of Backward.
    return position;
} 

L’exemple suivant implémente un algorithme de recherche simple à l’aide de TextPointer installations.

// This method will search for a specified word (string) starting at a specified position.
TextPointer FindWordFromPosition(TextPointer position, string word)
{
    while (position != null)
    {
         if (position.GetPointerContext(LogicalDirection.Forward) == TextPointerContext.Text)
         {
             string textRun = position.GetTextInRun(LogicalDirection.Forward);

             // Find the starting index of any substring that matches "word".
             int indexInRun = textRun.IndexOf(word);
             if (indexInRun >= 0)
             {
                 position = position.GetPositionAtOffset(indexInRun);
                 break;
             }
         }
         else
            position = position.GetNextContextPosition(LogicalDirection.Forward);
     }

     // position will be null if "word" is not found.
     return position; 
}

.NET Framework
Disponible depuis 3.0
Silverlight
Disponible depuis 4.0
Silverlight pour Windows Phone
Disponible depuis 7.1

Tous les membres statiques publics ( Shared en Visual Basic) de ce type sont thread-safe. Les membres d’instance n’ont pas la garantie d’être thread-safe.

Retour au début
Afficher: