TextPointer.GetInsertionPosition(LogicalDirection) Méthode

Définition

Renvoie un TextPointer à la position d'insertion la plus proche dans la direction logique spécifiée.

public:
 System::Windows::Documents::TextPointer ^ GetInsertionPosition(System::Windows::Documents::LogicalDirection direction);
public System.Windows.Documents.TextPointer GetInsertionPosition (System.Windows.Documents.LogicalDirection direction);
member this.GetInsertionPosition : System.Windows.Documents.LogicalDirection -> System.Windows.Documents.TextPointer
Public Function GetInsertionPosition (direction As LogicalDirection) As TextPointer

Paramètres

direction
LogicalDirection

L'une des valeurs LogicalDirection qui spécifient la direction logique dans laquelle rechercher la position d'insertion la plus proche.

Retours

TextPointer

Un TextPointer vers la position d'insertion la plus proche dans la direction logique spécifiée.

Exemples

Cet exemple montre comment utiliser la GetInsertionPosition méthode pour vérifier si un contenu spécifié TextElement est vide de contenu imprimable.

// Tests to see if the specified TextElement is empty (has no printatble content).
bool IsElementEmpty(TextElement element)
{
    // Find starting and ending insertion positions in the element.
    // Inward-facing directions are used to make sure that insertion position
    // will be found correctly in case when the element may contain inline 
    // formatting elements (such as a Span or Run that contains Bold or Italic elements).
    TextPointer start = element.ContentStart.GetInsertionPosition(LogicalDirection.Forward);
    TextPointer end = element.ContentEnd.GetInsertionPosition(LogicalDirection.Backward);
     
    // The element has no printable content if its first and last insertion positions are equal.
    return start.CompareTo(end) == 0;
} // End IsEmptyElement method.
' Tests to see if the specified TextElement is empty (has no printatble content).
Private Function IsElementEmpty(ByVal element As TextElement) As Boolean
    ' Find starting and ending insertion positions in the element.
    ' Inward-facing directions are used to make sure that insertion position
    ' will be found correctly in case when the element may contain inline 
    ' formatting elements (such as a Span or Run that contains Bold or Italic elements).
    Dim start As TextPointer = element.ContentStart.GetInsertionPosition(LogicalDirection.Forward)
    Dim [end] As TextPointer = element.ContentEnd.GetInsertionPosition(LogicalDirection.Backward)

    ' The element has no printable content if its first and last insertion positions are equal.
    Return start.CompareTo([end]) = 0

End Function ' End IsEmptyElement method.

Remarques

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

Si le TextPointer pointe déjà vers une position d’insertion valide, mais que la balise de fermeture d’une séquence de mise en forme non vide suit directement cette position dans la direction donnée, la TextPointer méthode retournée est ajustée pour pointer vers la position d’insertion juste après la fermeture de la séquence de mise en forme. Par exemple, considérez la séquence <Bold>a</Bold>bde balisage . Notez qu’il existe deux positions d’insertion entre les lettres a et b : une qui précède la balise de fermeture Bold , et une qui suit directement la balise de fermeture Bold . S’il GetInsertionPosition est appelé sur une TextPointer position directement après la lettre a et avant la balise de fermeture Bold , et avec un direction de Forward, le retour TextPointer est ajusté pour pointer vers la position juste avant la lettre b, après la balise de fermeture Bold . Un ajustement similaire est effectué pour ouvrir des balises de mise en forme lorsque vous travaillez dans la direction logique opposée. Cette méthode est destinée à fournir un moyen d’ambiguïté entre les positions d’insertion dans des cas similaires.

Cette méthode peut également être utilisée pour être sélective sur les points d’insertion lorsqu’une séquence d’étiquettes structurelles est impliquée. Par exemple, lorsqu’il se trouve à une position entre les balises de paragraphe fermant et ouvrant, le paramètre de direction peut être utilisé pour sélectionner le point d’insertion le plus proche au début du paragraphe suivant (en spécifiant LogicalDirection.Forward) ou à la fin du paragraphe précédent (en spécifiant LogicalDirection.Backward).

Si le pointeur est déjà à la position d’insertion et qu’il n’existe pas de balises de mise en forme adjacentes dans le spécifié direction, les points retournés TextPointer pointent à la même position que l’appel TextPointer.

Il est possible qu’aucune position d’insertion valide n’existe par rapport à la position pointée par un TextPointer. Cela peut se produire si le contenu référencé est structurellement incomplet, comme dans une table ou une liste vide. Dans ce cas, cette méthode retourne simplement une TextPointer position identique à celle TextPointer à partir de laquelle cette méthode a été appelée. Cette méthode retourne toujours une valeur valide TextPointer.

S’applique à

Voir aussi