TextPatternRange.ExpandToEnclosingUnit(TextUnit) Méthode

Définition

Développe la plage de texte à l'élément TextUnit spécifié.

public:
 void ExpandToEnclosingUnit(System::Windows::Automation::Text::TextUnit unit);
public void ExpandToEnclosingUnit (System.Windows.Automation.Text.TextUnit unit);
member this.ExpandToEnclosingUnit : System.Windows.Automation.Text.TextUnit -> unit
Public Sub ExpandToEnclosingUnit (unit As TextUnit)

Paramètres

unit
TextUnit

Unité de texte.

Exemples

 private void ExpandSelection(AutomationElement target)
{
    // Specify the control type we're looking for, in this case 'Document'
    PropertyCondition cond = new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Document);

    // target --> The root AutomationElement.
    AutomationElement textProvider = target.FindFirst(TreeScope.Descendants, cond);

    TextPattern textpatternPattern = textProvider.GetCurrentPattern(TextPattern.Pattern) as TextPattern;

    if (textpatternPattern == null)
    {
        Console.WriteLine("Root element does not contain a descendant that supports TextPattern.");
        return;
    }
    TextPatternRange[] currentSelection = textpatternPattern.GetSelection();
    // Expand selection to include entire document
    currentSelection[0].ExpandToEnclosingUnit(TextUnit.Document);
}
Private Sub ExpandSelection(ByVal target As AutomationElement)
    ' Specify the control type we're looking for, in this case 'Document'
    Dim cond As PropertyCondition = New PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Document)

    ' target --> The root AutomationElement.
    Dim textProvider As AutomationElement = target.FindFirst(TreeScope.Descendants, cond)

    Dim textpatternPattern As TextPattern = CType(textProvider.GetCurrentPattern(TextPattern.Pattern), TextPattern)

    If (textpatternPattern Is Nothing) Then
        Console.WriteLine("Root element does not contain a descendant that supports TextPattern.")
        Return
    End If
    Dim currentSelection As TextPatternRange() = textpatternPattern.GetSelection()
    currentSelection(0).ExpandToEnclosingUnit(TextUnit.Document)
End Sub

Remarques

Si la plage est déjà une quantité exacte des unités spécifiées, elle reste inchangée.

Pour que la ExpandToEnclosingUnit méthode s’exécute correctement, une séquence d’actions est effectuée en arrière-plan.

  1. La plage de texte est normalisée ; autrement dit, la plage de texte est réduite à une plage dégénérée au point de Start terminaison, ce qui rend le End point de terminaison superflu. Cette étape est nécessaire pour supprimer l’ambiguïté dans les situations où une plage de texte dépasse les unit limites ; par exemple, « {L’U}RL https://www.microsoft.com/ est incorporée dans le texte » où « { » et « } » sont les points de terminaison de la plage de texte.

  2. La plage obtenue est déplacée vers l'arrière dans DocumentRange au début de la limite unit demandée.

  3. La plage est avancée ou reculée dans DocumentRange du nombre demandé de limites unit .

  4. La plage est ensuite étendue à partir d'un état de plage dégénérée en déplaçant le point de terminaison End d'une limite unit demandée.

Ajustements de plage par Move & ExpandToEnclosingUnit
Exemples de la façon dont une plage de texte est ajustée pour Move() et ExpandToEnclosingUnit()

Notes

Ces étapes sont nécessaires, car il est courant pour un lecteur d’écran de lire un mot, une phrase ou un paragraphe entier au point d’insertion ou à toute position de curseur virtuel.

ExpandToEnclosingUnit respecte à la fois le texte masqué et visible. Le client UI Automation peut case activée pour la visibilité du IsHiddenAttribute texte.

ExpandToEnclosingUnit passe au plus grand TextUnit suivant pris en charge si le donné TextUnit n’est pas pris en charge par le contrôle.

L’ordre, de la plus petite à la plus grande, est répertorié ci-dessous.

S’applique à

Voir aussi